如何在R中按列合并TSV文件?用map或dplyr实现
按列合并TSV文件(基于purrr与dplyr实现)
你可以通过以下两种方式实现按列合并,具体取决于你的数据场景:
场景1:文件行顺序完全对应,直接按列拼接
先用map把所有TSV文件读取为数据框列表,再用bind_cols完成列合并:
library(purrr) library(dplyr) library(readr) files <- c("test/df1.tsv", "test/df2.tsv") # 读取所有文件到列表 df_list <- map(files, read_tsv) # 按列合并 combined_df <- bind_cols(df_list)
如果两个文件存在同名列,bind_cols会自动添加.x/.y后缀区分来源,避免列名冲突。
场景2:需要按「Reads」列的值匹配拼接
如果文件的行顺序不一致,或者需要确保相同Reads值的行对应合并,用reduce结合full_join按指定列匹配:
combined_df <- df_list %>% reduce(full_join, by = "Reads")
这种方式会以Reads为匹配键,将两个文件中对应行的列拼接在一起,缺失的匹配项会填充为NA。
内容的提问来源于stack exchange,提问作者user483292
相关产品推荐
相关产品推荐

