R 数据帧的子集,包括指定列处另一个数据帧的元素
我有两个数据帧(df1和df2) 假设df1是这样一个数据帧: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
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非常感谢。它工作得很好。如果您单击“答案”并在那里回答,我将关闭该主题。再次非常感谢。很高兴这有帮助。