我有两个数据帧中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