【发布时间】:2015-07-09 01:01:15
【问题描述】:
我想为 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(),但不想明确指定每个变量名称,因为我通常想重命名所有 except 单个变量并且可能有更广泛的数据。框架比在这个例子中。
我正在想象一个最终的管道命令,它近似于这个虚构的功能:
appendname(cols = 2:n, str = "_mean_2014", placement = "suffix")
据我所知不存在。
【问题讨论】: