You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据框列表与外部数据框合并为单个新数据框?

问题内容

我拥有一个包含51个数据框的列表,示例如下:

GENOME_1 <- data.frame(COG = c("a","b","c"), GEN_1 = c("names","morenames","diferent_genenames"))

GENOME_2 <- data.frame(COG = c("a","b","c","d"), GEN_2 = c("names","names", "differen_genenames","somemorenames"))

GENOME_3 <- data.frame(COG = c("a","c"), GEN_3 = c("names","different_genenames"))

此外,还有一个不在该列表中的参考数据框:

reference <- data.frame(COG = c("a","b","c","d","e"), Names = c("names","morenames","diferent_genenames","somemorenames","namesonlyfoundhere"))

该参考数据框约有800行,行数远多于列表中的数据框。我需要将列表中的每个数据框与这个外部参考数据框合并,生成如下格式的单个新数据框:

Dataframe_final <- data.frame(COG = c("a","b","c","d","e"), Names = c("names","morenames","diferent_genenames","somemorenames","namesonlyfoundhere"), GEN_1 = c("names","morenames","diferent_genenames", "NA", "NA"),GEN_2 = c("names","morenames", "differen_genenames","somemorenames", "NA"), GEN_3 = c("names","different_genenames", "NA","NA","NA")) 

我尝试了以下循环代码:

for (i in seq_along(list_ofdataframes)) {newtable <- merge(reference, list_ofdataframes[[i]], by = "COG", all = T)}

但得到的结果仅保留了最后一个数据框的合并内容,不符合预期。

编辑:我发现使用以下命令可以实现需求:

finaldd <- Reduce(function(dtf1, dtf2) merge(dtf1, dtf2, by = "COG", all = TRUE), list(GENOME_1,GENOME_2,GENOME_3,reference))

View(finaldd)
but


内容的提问来源于stack exchange,提问作者Carlos Alberto Lara Rojas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:55:25