3

是否可以使用 ddply 来汇总数据而不按组分层?我试过类似的东西

ddply(df, summarize, a = sum(a, na.rm=T), b = sum(b, na.rm=T))
4

2 回答 2

6

该函数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
于 2013-10-08T02:37:03.490 回答
0

谢谢安德烈!我需要使用 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
              }))
于 2018-11-05T13:04:01.540 回答