是否可以使用 ddply 来汇总数据而不按组分层?我试过类似的东西
ddply(df, summarize, a = sum(a, na.rm=T), b = sum(b, na.rm=T))
该函数ddply
将接受一个“空”分组变量并对整个表执行分析。
带有子组:
ddply(baseball, .(lg), c("nrow", "ncol"))
lg nrow ncol
1 65 22
2 AA 171 22
3 AL 10007 22
4 FL 37 22
5 NL 11378 22
6 PL 32 22
7 UA 9 22
没有子组:
ddply(baseball, .(), c("nrow", "ncol"))
.id nrow ncol
1 <NA> 21699 22
谢谢安德烈!我需要使用 function ldply()
,并将列表元素的名称放入.id
变量中,但.()
返回一个缺失值,而非空参数,例如.(sex)
根据需要返回名称。我不知道中的缺失值.id
是否是一个错误。我做了一个解决方法,但不是很方便:
Reduce(rbind.fill,
lapply(list(.(), .(sex)),
function(x) {
res <- ldply(d, function(y) ddply(y, x, summarize, otos=sum(sample.n), lab=sum(obs.n)))
if (all(is.na(res$.id)))
res$.id <- names(d)
res
}))