如果向量之间有公共元素/没有公共元素,则返回 TRUE/FALSE

rav*_*per 3 equality r vector intersect

我正在寻找一种有效的方法来创建一个布尔向量,TRUE如果多个指定变量(例如)中的一个或多个c(1,2,3)在另一个向量(例如)中,则该布尔向量返回c(4,5,6,1)

在此示例中,所寻求的输出将是TRUE当元素1出现在两个向量中时。

据我所知,%in%一次只允许检查一个变量,并且|在这种情况下,考虑到我需要检查的潜在变量的数量,使用运算符的效率很低。使用intersect()returnlogical(0)而不是FALSE, 和sum(c(1,2,3) == c(4,5,6,1)) > 1returnsFALSE因为公共元素不在同一位置。

Maë*_*aël 5

您可以使用any

vec <- c(1,2,3)
vec2 <- c(4,5,6,1)

any(vec %in% vec2)
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)