我正在将数据表折叠到汇总统计表中。总的来说,我想“通过”一个特定的因子变量,但我也想在没有“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?
答案 0 :(得分:1)
将rbindlist
子集放入fill=TRUE
mean
与list
一起尝试
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)))