这可能是一个非常基本的R问题......并且对于询问有点不好......但是有一些代码,如==
或|
或!
或&
等等执行以下逻辑功能?“任何”操作的逻辑条件
如果
x
==任何元素/包含在矢量值y
然后TRUE
其他
FALSE的
这可能是一个非常基本的R问题......并且对于询问有点不好......但是有一些代码,如==
或|
或!
或&
等等执行以下逻辑功能?“任何”操作的逻辑条件
如果
x
==任何元素/包含在矢量值y
然后TRUE
其他
FALSE的
它实际上非常接近你所说的。
any(x == y)
这可以适用于任何长度的x和y,但如果x和y不是彼此长度的倍数,它会发出警告。如果x和y的长度相同,这将是最好的。然而,对于x为一个项目的有限情况,则
x %in% y
也将工作。而且,如果你有一个与y不同的长度但长度大于1的x,则以下可能是最明智的。
any(x %in% y)
您可以尝试
x %in% y
其中y
是矢量。
的感谢!正是我所需要的... –
另一种解决方案是使用交叉功能,如果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
谢谢!特别是如果x长于1的扩展名。 –
我不太同意这个答案,并且个人认为李敏钊的答案更符合问题的要求。我认为如果x或y的长度为1但是过去这不符合原始问题描述的情况,则此工作正常。 – Dason
这不起作用?我的第一个和最后一个版本可以使用任何长度的x和y。这让他们更安全,以防止您将订单混淆。 – John