r“任何”操作的逻辑条件

时间:2012-10-19 04:02:55

标签: r logical-operators

这可能是一个非常基本的R问题...并且对于询问感觉有点不好......但是有一些代码,如==|!&等执行以下逻辑功能?

如果

x ==向量y

中包含的元素/的任何值

然后为TRUE

否则

FALSE

3 个答案:

答案 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