这可能是一个非常基本的R问题...并且对于询问感觉有点不好......但是有一些代码,如==
或|
或!
或&
等执行以下逻辑功能?
如果
x
==向量y
然后为TRUE
否则
FALSE
答案 0 :(得分:11)
它实际上非常接近你所说的。
any(x == y)
这可以适用于x和y的任何长度,但如果x和y的长度不是彼此的倍数,它会发出警告。如果x和y的长度相同,那将是最好的。但是,对于x是一个项目的有限情况,那么
x %in% y
也会奏效。并且,如果您的x长度与y的长度不同但长度大于1,则以下内容可能是最明智的。
any(x %in% y)
答案 1 :(得分:5)
你可以尝试
x %in% y
其中y
是向量。
答案 2 :(得分:2)
另一种解决方案是使用交叉函数,如果x是向量而y是向量,并且您想要查看两个向量中的所有值。如果x或y是标量,这也可以。
# Sample Data
x <- 1:40
y <- 35:100
# We know that 35, 36, 37, 38, 39, 40 are in both vectors
intersect(x, y)
[1] 35 36 37 38 39 40
我不知道您要解决的确切问题,但这可能对您有用,假设您需要知道y中的值。
如果您只需要一个TRUE / FALSE答案,而不会看到使用%y中x%的布尔矢量,您可以使用:
length(intersect(x, y)) > 0
[1] TRUE