我希望使用R
中的data.table
包通过另一组列计算多个列的平均值。对于少数列,我知道如何实现,并在下面提供了一个示例。但是,在我的非玩具示例中,我有数十个变量想要这样做,并且我希望找到一种从列名称向量执行此操作的方法。这可能吗?
library(data.table)
# creates data table
dfo <- data.frame(bananas = 1:5,
melonas = 6:10,
yeah = 11:15,
its = c(1,1,1,2,2)
)
dto <- data.table(dfo)
# gets column means by 'its' column
dto[,
.('bananas_mean' = mean(bananas),
'melonas_mean' = mean(melonas),
'yeah_mean' = mean(yeah)
),
by = .(its)]
cols <- c("香蕉", "甜瓜", "耶"); dto[,(paste0(cols, "_平均值")) := lapply(.SD, mean), by = 分组字段名称, .SDcols = cols]
- Mike H.[]
来打印结果。 - Frankdfo %>% group_by(its) %>% summarise_all(funs(mean = mean))
- alistaire