首页 > 解决方案 > 将列表中的多个 df 连接到单个 df 的不同列中

问题描述

我在 R 中有一个由 40 个数据帧组成的数据帧(df1)列表,每个数据帧只有 1 列(V1)。我想将 df1 中的所有数据帧连接成一个数据帧(df2),其中 df1 中的每个数据帧都变成了 df2 中的一列。

到目前为止,我正在这样做:

df2 <- bind_rows(df1, .id = "column_label")

head(df2)   
column_label         V1
Hazt              miR-92
Hazt              miR-92
Hazt              miR-92
Hazt              miR-184
Hazt              miR-184
PPee              miR-92
PPee              miR-3

但是,如前所述,我希望新的数据框看起来像这样

Hazt       PPee 
miR-92     miR-92
miR-92     miR-3
miR-92
miR-184
miR-184

具有与 df1 中的原始数据框一样多的列。

标签: rdataframe

解决方案


如果df1是 a list,那么试试这个:

df2 <- do.call("cbind",df1)

如果您有不同行数的数据框,试试这个:

df1 <- lapply(df1, function(x,n){if(nrow(x)<n){x[n,]<-NA};return(x)},n = max(sapply(df1,nrow)))

do.call("cbind",df1)

推荐阅读