我需要将多个数据框与列A
中的匹配值合并。什么是最有效的方法来获得result
。
DF1
A B C
2 x r
1 c r
3 y t
DF2
A D E
3 e y
1 t t
2 y t
DF3
A F G
1 g y
2 f y
3 h k
结果
A B C D E F G
1 c r t t g y
2 x r y t f y
3 y t y t h k
答案 0 :(得分:2)
一种解决方案是使用dplyr
包,它是inner_join
,如下所示:
library(dplyr)
df <- inner_join(df1, df2)
df <- inner_join(df, df3)
产生的结果是:
df
A B C D E F G
1 2 x r y t f y
2 1 c r t t g y
3 3 y t e y h k
注意,inner_join
仅保留A
匹配的行。
如果您希望按列A
排列,可以添加以下行:
arrange(df, A)
A B C D E F G
1 1 c r t t g y
2 2 x r y t f y
3 3 y t e y h k
要合并一个可变长度的数据框列表,看起来Reduce可以与上面的inner_join
一起使用:
df <- Reduce(inner_join, list(df1, df2, df3))
arrange(df, A)
A B C D E F G
1 1 c r t t g y
2 2 x r y t f y
3 3 y t e y h k