如何根据R中第一个数据帧的列值按行连接两个数据帧?

时间:2016-08-23 14:03:18

标签: mysql r dplyr

我想根据第一个数据框的列值加入两个像下面这样的数据框:

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的连接,交叉等但是无法得到正确的结果。

3 个答案:

答案 0 :(得分:3)

使用rbindintersect的一种方法。 intersect会找出df1$adf2$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, ])