通过变量汇总带有许多变量的data.table

时间:2016-04-13 01:35:24

标签: r data.table mean

我有一些data.tabledt

    pga  fgm  fga  tgp  mode
1:  0.2  0.1  0.9  7.3     1
2:  1.3  7.5  8.3  8.3     3
3:  2.0  7.7  6.3  7.7     2
4:  7.3  3.6  7.0  6.6     1
5:  6.7  0.3  8.3  0.6     2
6:  5.0  3.7 -1.1 -3.2     1
....

我需要为按变量模式分组的每个变量计算mean,并获取data.table如下:

    mode   pga   fgm   fga   tgp
1:     1  0.23  0.11  10.9  7.23
2:     2  1.32  73.5  85.3  8.33
3:     3  2.06  7.75  6.33  7.47
4:     4  6.32  32.6  7.01  6.16
....

执行任务有一个单行程序:

dt[,list(pga=mean(pga), fgm=mean(fgm), fga=mean(fga), tgp=mean(tgp)), by=mode] 

如果只有4个变量,那就好了。但是,在现实世界中,变量的数量是~1000。如何修改实际任务的脚本?

1 个答案:

答案 0 :(得分:0)

dplyr

library(dplyr)
dt %>%
   group_by(mode) %>%
   summarise_each(funs(mean))