Мой код:
df1 <- data.frame("X1"=c("John","Sam","Dave"),"X2"=c(21,22,25))
df2 <- data.frame("X1"=c("John","Sam"),"X2"=c(22,25))
df3 <- data.frame("X1"=c("John","Sam","Dave"),"X2"=c("US","SA","NZ"))
mylist <- list(df1,df2,df3)
merged= Reduce(function (...) merge(..., all= T), mylist)
Мой вывод:
X1 X2
1 Dave 25
2 Dave NZ
3 John 21
4 John 22
5 John US
6 Sam 22
7 Sam 25
8 Sam SA
Однако, вывод, который мне нужен,
names X1 X2.x X2.y
1 Dave 25 NA NZ
2 John 21 22 US
3 Sam 22 25 SA
Я понимаю, что могу получить желаемый результат, если я называю столбцы по-другому, но это не вариант здесь. В частности, я хочу знать, как добавить аргумент "by =" X1 "с функцией Reduce, который используется только в функции слияния.