Same Data.Table中的Group By和Aggregate Summary Statistics

时间:2015-04-04 13:35:58

标签: r data.table

我正在将数据表折叠到汇总统计表中。总的来说,我想“通过”一个特定的因子变量,但我也想在没有“by”的情况下对所有值进行总结。考虑:

dt <- data.table(matrix(rnorm(216),72),dim1=c(rep("A",24),rep("B",24),rep("C",24)))
dt0 <- dt[,list(mean=mean(V1)), by=list(dim1)]
dt1 <- dt[,list(mean=mean(V1), dim1=NA)]
dt <- rbind(dt0, dt1)

结果将是:

dim1 mean
A    n.nn
B    m.mm
C    o.oo
NA   p.pp

有没有一种漂亮,简洁的方法来做到这一点,而无需创建临时data.tables或手动处理NA?

1 个答案:

答案 0 :(得分:1)

rbindlist子集放入fill=TRUE

后,您可以meanlist一起尝试
library(data.table)#v1.9.5+
rbindlist(list(dt[,list(Mean=mean(V1)), by=dim1],
                  dt[, list(Mean=mean(V1))]), fill=TRUE)
#   dim1        Mean
#1:    A -0.13769807
#2:    B -0.27886124
#3:    C  0.13357025
#4:   NA -0.09432969

数据

set.seed(24)
dt <- data.table(matrix(rnorm(216),72),dim1=c(rep("A",24),rep("B",24),
 rep("C",24)))