我在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
我认为这应该是一个突击队,但我找不到。
答案 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
参数。