R-如何在两个向量中查找公共逻辑值

时间:2019-04-10 14:50:29

标签: r vector intersect

1)我需要将两个向量相交,并返回一个具有相同且相交值的向量。

intersect()不会返回相同大小的向量。

2)同样为什么返回c(TRUE TRUE TRUE)而不返回c(FALSE TRUE TRUE)吗?

set1 = c(TRUE,FALSE,TRUE)
set2 = c(FALSE,FALSE,TRUE)

testset = set1 %in% set2

> print(testset)
[1] TRUE TRUE TRUE

我得到TRUE TRUE TRUE作为结果,我需要FALSE FALSE TRUE

2 个答案:

答案 0 :(得分:4)

A %in% B检查A中的每个元素是否在B中。结果的长度始终与length(A)相同。尝试例如

1:3 %in% 1:9
1:9 %in% 1:3

我想你想要的是

set1 == set2
[1] FALSE  TRUE  TRUE

答案 1 :(得分:3)

要进行相交,需要使用&运算符,如下所示:

testset = set1 & set2

这将为您提供以下结果:FALSE FALSE TRUE

希望有帮助。