首页 文章

ddply没有组的整个数据?

提问于
浏览
3

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

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

2 回答

  • 0

    函数 ddply 将接受"empty"分组变量并对整个表执行分析 .

    有子组:

    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
    
  • 6

    谢谢安德莉!我需要使用函数 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
                  }))
    

相关问题