【问题标题】:R: Is there a good replacement for plyr::rbind.fill in dplyr?R:在 dplyr 中是否有一个很好的替代 plyr::rbind.fill 的方法?
【发布时间】:2017-11-11 20:44:17
【问题描述】:

对于 tidyverse 用户,dplyr 是处理数据的新方法。

对于试图避免使用旧包 plyr 的用户,dplyr 中与 rbind.fill 等效的功能是什么?

【问题讨论】:

    标签: r dplyr plyr


    【解决方案1】:

    另一种选择:

    rbindf <- function(...) {
      
      l <- list(...)
      if(length(l) == 1) l <- l[[1]]
      nn <- length(l)
    
      x <- l[[1]]
      if(length(l)>1){
          for(i in 2:nn) {
            y <- l[[i]]
            if(nrow(x) > 0 & nrow(y) > 0) {
              if(!all(yinx <- names(y) %in% names(x))) {
                x[, names(y)[!yinx]] <- NA
              } 
              if(!all(xiny <- names(x) %in% names(y))) {
                 y[, names(x)[!xiny]] <- NA
              } 
            }
            x <- rbind(x, y)
          }
      }
      return(x)
    }
    

    来自https://github.com/sashahafner/biogas(最初来自https://github.com/jonkatz2/monitoR)。

    【讨论】:

      【解决方案2】:

      是的。 dplyr::bind_rows

      评论归于评论者。

      【讨论】:

        猜你喜欢
        • 2016-08-05
        • 2011-01-06
        • 2020-05-21
        • 1970-01-01
        • 2015-02-12
        • 2022-12-05
        • 1970-01-01
        • 2022-06-15
        • 2016-04-09
        相关资源
        最近更新 更多