【发布时间】:2017-10-04 02:15:26
【问题描述】:
我想使用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)]
【问题讨论】:
-
跟进 Frank 的评论,以您想要的方式命名,您只需要稍作修改:
cols <- c("bananas", "melonas", "yeah"); dto[,(paste0(cols, "_mean")) := lapply(.SD, mean), by = its, .SDcols = cols] -
我认为我的
R可能有问题。我尝试了那个确切的代码,但我没有得到任何输出。知道为什么吗? -
它正在更新
dto,所以您是否尝试在运行后查看dto? -
哦,这很有趣。有用!我以前从未见过
R这样做。
标签: r data.table