如何在R中将行数不同的dataframe列表合并为单个dataframe?
在R中合并行数不同的单变量DataFrame列表
你的三个DataFrame都只包含protein列,只是行数不同,直接按行拼接即可,以下是两种常用实现方式:
方法1:用基础R实现
直接借助do.call()和rbind()函数,把列表里的所有DataFrame按行合并:
# 假设你的列表对象名为df_list merged_df <- do.call(rbind, df_list)
如果需要区分每条数据来自哪个原始DataFrame,可以先给每个DataFrame加一个来源标识列,再合并:
# 给列表里的每个DataFrame添加来源标记 df_list <- Map(function(df, num) { df$source <- paste0("df_", num) df }, df_list, 1:length(df_list)) # 执行合并 merged_df <- do.call(rbind, df_list)
方法2:用tidyverse工具实现
如果习惯用tidyverse生态,dplyr包的bind_rows()函数更简洁,还能自动帮你添加来源标识:
library(dplyr) # 直接合并 merged_df <- bind_rows(df_list) # 带来源标识的合并(.id参数会生成记录来源的列) merged_df <- bind_rows(df_list, .id = "source")
内容的提问来源于stack exchange,提问作者Carolina Raissa Costa Picossi
相关产品推荐
相关产品推荐

