Ответ 1
Вы можете собрать кадры данных в списке и использовать Reduce
:
L <- list(songs, artists, test)
Reduce(inner_join, L)
# name plays song song2
# 1 John guitar Across the Universe Across the Universe
# 2 John guitar Come Together Across the Universe
# 3 John guitar Across the Universe Come Together
# 4 John guitar Come Together Come Together
# 5 Paul bass Hello, Goodbye Hello, Goodbye
Вы можете использовать L <- mget(ls())
(с необязательным pattern
arg to ls
), чтобы все было в списке.
Как упоминалось в комментариях к @akrun, альтернатива plyr
:
library(plyr)
join_all(L, type='inner')