R 数据帧的子集,包括指定列处另一个数据帧的元素

R 数据帧的子集,包括指定列处另一个数据帧的元素,r,R,我有两个数据帧(df1和df2) 假设df1是这样一个数据帧: col1 col2 col3 a 3 12 a 5 15 b 2 3 a 5 6 a 4 12 b 5 15 a 3 14 c 5 8 c 3 2 c 2 22 b 2 21 a 5 11 b 5 7 c 5 6 a 2 5

我有两个数据帧(df1和df2)

假设df1是这样一个数据帧:

col1 col2 col3
a     3    12
a     5    15
b     2    3
a     5    6
a     4    12
b     5    15
a     3    14
c     5    8
c     3    2
c     2    22
b     2    21
a     5    11
b     5    7
c     5    6
a     2    5
col1  col2 
b     3
c     4
即 `

所需输出为:

   col1 col2 col3
a     3    12
b     2    3
a     4    12
b     5    15
a     3    14
c     5    8
c     3    2
c     2    22
b     2    21
b     5    7
c     5    6
这是df1的一个子集。它包括与df2的col1或df2的col2相等的所有df1行

例如,col1.df2的元素之一是“b”。所以,所有行(包括df1的col1处的“b”)都将是所需输出的元素

df2的第二列也包括“3”。所以,包括df1的at col2的“3”在内的所有行都将是所需输出的元素

“c”和“4”也一样

我怎样才能用R做到这一点?我将非常乐意为您提供帮助。非常感谢。

请尝试:

df1[df1$col1 %in% df2$col1 | df1$col2 %in% df2$col2,]
试试看:

df1[df1$col1 %in% df2$col1 | df1$col2 %in% df2$col2,]

如果有许多列,还可以将
Reduce
Map
一起使用

 df1[Reduce(`|`, Map(`%in%`, df1[1:2], df2[1:2])),]

如果有许多列,还可以将
Reduce
Map
一起使用

 df1[Reduce(`|`, Map(`%in%`, df1[1:2], df2[1:2])),]

尝试
df1[df1$col1%在%df2$col1中| df1$col2%在%df2$col2中,]
@nicola非常感谢。它工作得很好。如果您单击“答案”并在那里回答,我将关闭该主题。再次非常感谢。很高兴它起到了作用。请尝试
df1[df1$col1%在%df2$col1中| df1$col2%在%df2$col2中,]
@nicola非常感谢。它工作得很好。如果您单击“答案”并在那里回答,我将关闭该主题。再次非常感谢。很高兴这有帮助。