1
  • (cond1 | cond2 | cond3 | ...)意思是“一堆条件中的一个或多个是真的吗?”
  • any(cond1, cond2, cond3 ....)意思是“任何条件都是真的吗?”

因此,我们在这里不是说同样的话吗?

使用其中一个有什么优势吗?

4

1 回答 1

7

|是矢量化的——它返回一个与最长输入长度相同的结果,并在需要时循环使用。

any查看所有输入并返回长度为 1 的结果。

||只进行一次比较,使用其输入的第一个元素而不管它们的长度,并返回长度为 1 的结果。

x = c(FALSE, TRUE, FALSE)
y = c(FALSE, FALSE, FALSE)

any(x, y)
# [1] TRUE
## There's a TRUE in there somewhere

x | y
# [1] FALSE  TRUE FALSE
## Only the 2nd index of the vectors contains a TRUE

x || y
# [1] FALSE
## The first position of the vectors does not contain a TRUE.

如果输入的长度都是 1,则x1 | x2 | x3等价于x1 || x2 || x3等价于any(x1, x2, x3)。否则,不保证。

于 2020-02-12T07:49:09.927 回答