我想根据第一个数据框的列值加入两个像下面这样的数据框:
FIRST DATA FRAME :
a b c d
2 # # #
3 # # #
SECOND DATA FRAME :
a b c d
1 @ @ @
2 @ @ @
3 @ @ @
4 @ @ @
5 @ @ @
" a"以外的列的值没关系。 输出应该是:
a b c d
2 # # #
3 # # #
2 @ @ @
3 @ @ @
我尝试过合并,dplyr的连接,交叉等但是无法得到正确的结果。
答案 0 :(得分:3)
使用rbind
和intersect
的一种方法。 intersect
会找出df1$a
和df2$a
之间的共同元素。
common <- intersect(df1$a, df2$a)
rbind(df1[df1$a %in% common, ], df2[df2$a %in% common, ], make.row.names = F)
#a b c d
#2 # # #
#3 # # #
#2 @ @ @
#3 @ @ @
答案 1 :(得分:3)
我想还有一个变种:
subset(rbind(df1, df2), a %in% a[duplicated(a)])
# a b c d
#1 2 # # #
#2 3 # # #
#4 2 @ @ @
#5 3 @ @ @
答案 2 :(得分:2)
我会用rbind
尝试一些简单的事情rbind(df1, df2[df2$a %in% df1$a, ])