R: plyr::rbind.fill in dplyr有没有好的替代品?

R: Is there a good replacement for plyr::rbind.fill in dplyr?

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

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

是的。 dplyr::bind_rows

感谢评论者。

备选方案:

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 (originally from https://github.com/jonkatz2/monitoR).