我想为 data.frame 中的大多数变量名称添加后缀或前缀,通常是在它们都以某种方式进行转换之后和执行连接之前。我没有办法在不破坏管道的情况下做到这一点。
例如,使用此数据:
library(dplyr)
set.seed(1)
dat14 <- data.frame(ID = 1:10, speed = runif(10), power = rpois(10, 1),
force = rexp(10), class = rep(c("a", "b"),5))
我想得到这个结果(注意变量名):
class speed_mean_2014 power_mean_2014 force_mean_2014
1 a 0.5572500 0.8 0.5519802
2 b 0.2850798 0.6 1.0888116
我目前的做法是:
means14 <- dat14 %>%
group_by(class) %>%
select(-ID) %>%
summarise_each(funs(mean(.)))
names(means14)[2:length(names(means14))] <- paste0(names(means14)[2:length(names(means14))], "_mean_2014")
有没有替代那个打破我管道的笨重的最后一行?我已经看过select()
但rename()
不想明确指定每个变量名称,因为我通常想重命名除单个变量之外的所有变量,并且可能具有比本示例中更宽的 data.frame。
我正在想象一个最终的管道命令,它近似于这个虚构的函数:
appendname(cols = 2:n, str = "_mean_2014", placement = "suffix")
据我所知,这是不存在的。