R 有没有一种方法可以过滤一个数据帧以保留与另一个数据帧中的值相匹配的值?

R 有没有一种方法可以过滤一个数据帧以保留与另一个数据帧中的值相匹配的值?,r,filter,R,Filter,这里我有数据帧df2,在B列中有三个值。我想通过只保留与df2$B匹配的值来过滤df1$B df2 <- structure(list(A = 1:3, B = c(20L, 7L, 52L)), class = "data.frame", row.names = c(NA, -3L)) df1 <- structure(list(A = 1:6, B = c(15L, 20L, 13L, 7L, 52L, 78L)), class = "data.frame", row.n

这里我有数据帧df2,在B列中有三个值。我想通过只保留与df2$B匹配的值来过滤df1$B

df2 <- structure(list(A = 1:3, B = c(20L, 7L, 52L)), class = "data.frame", 
row.names = c(NA, 
-3L))

df1 <- structure(list(A = 1:6, B = c(15L, 20L, 13L, 7L, 52L, 78L)), class = 
"data.frame", row.names = c(NA, 
-6L))

df2在
r-base
中,您可以编写:

df1[df1$B%在%df2$B中,]
A B
2 2 20
4 4  7
5 5 52

使用
dplyr
软件包,您可以使用
filter

库(dplyr)
df1%>%筛选器(在%df2$B中为B%)
A B
1 2 20
2 4  7
3 5 52

您还可以执行
左键联接

库(dplyr)
左联合(df2,df1,by=“B”)
A.x B.A.y
1   1 20   2
2   2  7   4
3   3 52   5

这就是你要找的吗

r base
中,您可以编写:

df1[df1$B%在%df2$B中,]
A B
2 2 20
4 4  7
5 5 52

使用
dplyr
软件包,您可以使用
filter

库(dplyr)
df1%>%筛选器(在%df2$B中为B%)
A B
1 2 20
2 4  7
3 5 52

您还可以执行
左键联接

库(dplyr)
左联合(df2,df1,by=“B”)
A.x B.A.y
1   1 20   2
2   2  7   4
3   3 52   5
这就是你要找的吗