我有兩個數據幀中R.合併兩個數據幀根據每個數據幀匹配兩段可交換列
數據幀1
A B C D E F G
1 2 a a a a a
2 3 b b b c c
4 1 e e f f e
數據幀2
X Y Z
1 2 g
2 1 h
3 4 i
1 4 j
我想匹配dataframe1的專欄A和B與dataframe2的列X和Y.它不是成對比較,即行1(A = 1 B = 2)被認爲與行1(X = 1,Y = 2)和行2(X = 2,Y = 1)數據幀2.
當找到匹配項時,我想將dataframe1的列C,D,E,F添加回匹配的dataframe2行,如下所示:沒有與na匹配。
最終數據幀
X Y Z C D E F G
1 2 g a a a a a
2 1 h a a a a a
3 4 i na na na na na
1 4 j e e f f e
我只能知道該怎麼做了單列匹配,但是,怎麼做匹配了兩個可交換列和基於匹配結果合併兩個dataframes對我來說很難。請幫助提供這樣做的聰明方式。
爲了便於討論(感謝文森特和迪文(我以前quesiton我應該測試報價評論))。有加載數據框1的配額和2 R.
df1 <- data.frame(A = c(1,2,4), B=c(2,3,1), C=c('a','b','e'),
D=c('a','b','e'), E=c('a','b','f'),
F=c('a','c','f'), G=c('a','c', 'e'))
df2 <- data.frame(X = c(1,2,3,1), Y=c(2,1,4,4), Z=letters[7:10])
你如何處理碰撞?即,當df1在行中有X = 1和Y = 2且X = 2且Y = 1時?你保證不會發生? – mcpeterson 2011-05-25 07:04:38