在两个数据帧中查找相同的元素

时间:2015-08-03 10:18:50

标签: r

我在R中有两个df(df1和df2),每个都有一列,每列都有标题Person。我真正的df:s更长,但是这样的例子:

df1:

Person                  
P1
P2
P5
P8
P11

DF2:

Person
P1
P5
P7
P8
P12

我知道想要创建一个新的df,只包含两个数据框中相同的元素,所以在这个例子中它将是:

newdf:

Person
P1
P5
P8

我认为这应该是一个突击队,但我找不到。

2 个答案:

答案 0 :(得分:1)

你可以尝试 -

new_df <- as.data.frame(intersect(df1$Person, df2$Person))

答案 1 :(得分:0)

另一个选项是来自inner_join

dplyr
 library(dplyr)
 inner_join(df1, df2)
 #  Person
 #1     P1
 #2     P5
 #3     P8

如果有多个数据集,即&gt; 2,则在将数据集放入join_all

后,plyr中的一个选项为list
 df3 <- data.frame(Person=c("P1", "P5"))
 library(plyr)
 join_all(list(df1, df2, df3), by='Person', type='inner')
 #   Person
 #1     P1
 #2     P5

您可以根据需要更改type参数。