0

我有大量不同列数的数据框列表。我想遍历每个数据框列表并合并它们,尽管列数不同。

data<-list()
data[[1]]<-data.frame(x=c(1,4),b=c(7,8),d=c(5,4),y=c(4,7),h=c(8,5)
data[[2]]<-data.frame(x=c(1,NA),b=c(7,8),d=c(5,NA),y=c(4,NA),h=c(8,NA),a=c(NA,87),z=c(NA,7))

这是我的试用版,但我没有得到想要的输出:(

 comined_df<-function(index)
    {
      if (nrow(as.data.frame(data[index]))>0)
        {
            cleaned_data_frame <- dplyr::bind_rows(as.data.frame(data[index]))
        }
      else
        {
            return(NULL)
        }
    }

combined_df_final<-lapply(1:length(data), comined_df)

所需的输出如下:

  x b  d  y  h  a  z
1  1 7  5  4  8 NA NA
2  4 8  4  7  5 NA NA
3  1 7  5  4 NA NA NA
4 NA 8 NA NA NA NA  7

任何人都可以帮我实现这个吗?

4

1 回答 1

2

您可以使用dplyr::bind_rowsdata.table::rbindlist

dplyr::bind_rows(data)

#   x b  d  y  h  a  z
#1  1 7  5  4  8 NA NA
#2  4 8  4  7  5 NA NA
#3  1 7  5  4  8 NA NA
#4 NA 8 NA NA NA 87  7

data.table

data.table::rbindlist(data, fill = TRUE)
于 2020-08-17T03:59:57.157 回答