any()
函数的描述为“给定一组逻辑向量,是否至少有一个值为真?”,而all()
函数则表示“给定一组逻辑向量,所有的值都是真的吗?”。这意味着在all()
中返回TRUE
的所有内容也应该在any()
中返回TRUE
。但请看这里:
all(NULL == "Yes")
[1] TRUE
any(NULL == "Yes")
[1] FALSE
我知道有一个名为is.null()
的函数,它对于all(is.null(NULL))
和any(is.null(NULL))
给出相同的结果。但在我的情况下,我不需要使用is.null()
。我正在编写一个包含用户选择的函数。这些选择可以是预定义的单词或NULL(如果没有进行选择)。当然,我可以在内部重新赋值NULL
为一个单词(例如“no_choice”),但是为什么any()
返回FALSE
呢?此外,问题并不是那么关于is.null()
,因为NULL == 1
给出logical(0)
,同样的悖论情况也适用于:
all(logical(0))
[1] TRUE
any(logical(0))
[1] FALSE
这是一个重复的问题
发现一个问题问了同样的悖论。我无法标记为重复(或不知道如何操作)。