【发布时间】:2021-11-10 09:34:51
【问题描述】:
any() 函数用“Given a set of logical vectors, is at least one of the values true?”描述,而all() 函数用“Given a set of logical vectors, are all of the values true?”描述这意味着在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
这是重复的
发现了一个question 问同样的悖论。我不能标记为重复(或不知道如何)。
【问题讨论】:
标签: r logic comparison