将多个数据帧一起合并为R中的一个

问题描述 投票:0回答:1

在R中工作。我有9个数据框,它们共享一个我想加入的通用ID。通常我只使用2个dfs来使用inner_join,但是使用9则要复杂一些(并且我不太擅长R)。有什么建议吗?

r dataframe inner-join
1个回答
0
投票

我们可以将其放入list,然后将inner_joinreduce结合使用

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)
© www.soinside.com 2019 - 2024. All rights reserved.