Мы можем привести его к list
, а затем использовать inner_join
с reduce
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
это можно сделать с помощью merge
и Reduce
Reduce(function(...) merge(..., by = 'ID'), lst1)