我希望对于每个组,计算几列的平均值,但这些列应该作为名称向量给出:
library(data.table)
DT <- data.table(k=c(1,1,2,2,2),v=1:5,w=11:15,key="k")
DT[,list(N=.N,v=mean(v),w=mean(w)),by="k"]
k N v w
1: 1 2 1.5 11.5
2: 2 3 4.0 14.0
然而,在计算平均值时,我不想明确指定v
和w
。我还有另一个变量。
mycols <- c("v","w")
应该使用代替显式列名。
我尝试了各种版本的
DT[,list(.N,colMeans(.SD[mycols])),by="k"]
并获得
Error in `[.data.table`(.SD, mycols) :
我想知道是否有一种方法来实现它...