r - 将列表中的多个 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 中的原始数据框一样多的列。
解决方案
如果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)
推荐阅读
- apache-spark - AWS GlueContext 未初始化
- java - 使用 webview 下载 android instagram 视频
- php - 通过 RingCentral API 发送传真
- smartcard - CRC-16/CCITT-FALSE 和 CRC-16/X-25 有什么区别?
- java - 为什么动作栏切换具有 int openDrawerContentDescRes, int closeDrawerContentDescRes 接受两个字符串
- java - java:使用引用序列化大型列表
- javascript - 我的电子应用程序没有任何日志记录就无法启动
- excel - 为什么我的变量开始超出我想要的范围?
- c# - MailMessage 发送带有空主题和附件的邮件
- bash - 如何压缩最新的 docker 镜像?