聚合data.table中的多个列

Ale*_*lex 13 aggregate r dataframe data.table

我有以下样本data.table:

dtb <- data.table(a=sample(1:100,100), b=sample(1:100,100), id=rep(1:10,10))
Run Code Online (Sandbox Code Playgroud)

例如,我想通过id聚合所有列(a和b,尽管它们应该保持分开)colSums.这样做的正确方法是什么?以下不起作用:

 dtb[,colSums, by="id"]
Run Code Online (Sandbox Code Playgroud)

这只是一个示例,我的表有很多列,所以我想避免在函数名中指定所有列

Ale*_*lex 28

这实际上是我想要的,并在常见问题中提到:

dtb[,lapply(.SD,mean),by="id"]
Run Code Online (Sandbox Code Playgroud)

  • +1这些,你是完全正确的,这绝对是更好的方式.我一直认为我应该拥有长格式的所有内容,但通常情况下,在这种情况下,进行计算会更有效率.你应该把你的标记作为正确的答案. (3认同)