首页 > 解决方案 > 在 R 中将多个数据框合并为一个

问题描述

在 R 中工作。我有 9 个数据框,它们都共享一个我想加入的公共 ID。通常我会使用只有 2 个 dfs 的 inner_join,但使用 9 会稍微复杂一些(而且我不擅长 R)。有什么建议么?

标签: rdataframeinner-join

解决方案


我们可以把它带入 alist然后使用inner_joinwithreduce

library(dplyr)
library(purrr)
lst1 <- list(df1, df2, df3, ...., dfn)

如果对象名称有一个模式,即df后跟一些数字,它可以list更容易地转换为

lst1 <- mget(ls(pattern = '^df\\d+$'))
reduce(lst1, inner_join, by = 'ID')

base R中,这可以通过mergeReduce

Reduce(function(...) merge(..., by = 'ID'), lst1)

推荐阅读