Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 用聚合保持零长群_R_Aggregate - Fatal编程技术网

R 用聚合保持零长群

R 用聚合保持零长群,r,aggregate,R,Aggregate,我刚刚注意到聚合从结果中消失了空组,我如何解决这个问题?e、 g `xx <- c("a", "b", "d", "a", "d", "a") xx <- factor(xx, levels = c("a", "b", "c", "d")) y <- rnorm(60, 5, 1) z <- matrix(y, 6, 10) aggregate(z, by = list(groups = xx), sum)` `xx我们可以创建另一个数据框架,只使用'xx'的级

我刚刚注意到聚合从结果中消失了空组,我如何解决这个问题?e、 g

`xx <- c("a", "b", "d", "a", "d", "a")
 xx <- factor(xx, levels = c("a", "b", "c", "d"))
 y <- rnorm(60, 5, 1)
 z <- matrix(y, 6, 10)
 aggregate(z, by = list(groups = xx), sum)`

`xx我们可以创建另一个
数据框架
,只使用'xx'的
级别
,然后使用
聚合
合并
。输出将包含所有“组”,而与其他列的缺失级别对应的行将为NA

merge(data.frame(groups=levels(xx)),
   aggregate(z, by = list(groups = xx), sum), all.x=TRUE)

另一个选项可能是使用
melt
转换为“long”格式,然后使用
dcast
fun.aggregate
作为“sum”和
drop=FALSE

library(data.table)
dcast(melt(data.table(groups=xx, z), id.var='groups'), 
         groups~variable, value.var='value', sum, drop=FALSE)
也许可以尝试使用(z,xx,colSums)作为聚合的替代方法。