我有一个大data.table
我正在使用以下方法将其折叠到月份级别,by
.
变量有 5 个,级别数:c(4,3,106,3,1380)
。 106 是月份,1380 是地理单位。事实证明,有一些 0,因为有些单元格没有值。by
放弃这些,但我希望它保留它们。
可重现的例子:
require(data.table)
set.seed(1)
n <- 1000
s <- function(n,l=5) sample(letters[seq(l)],n,replace=TRUE)
dat <- data.table( x=runif(n), g1=s(n), g2=s(n), g3=s(n,25) )
datCollapsed <- dat[ , list(nv=.N), by=list(g1,g2,g3) ]
datCollapsed[ , prod(dim(table(g1,g2,g3))) ] # how many there should be: 5*5*25=625
nrow(datCollapsed) # how many there are
是否有一种有效的方法来用 0 填充这些缺失值,以便 by var 的所有排列都在结果折叠的 data.table 中?