【发布时间】:2021-01-08 22:21:12
【问题描述】:
a <- character()
b <- "SO is great"
any(a == b)
#> [1] FALSE
all(a == b)
#> [1] TRUE
手册这样描述“任何”
给定一组逻辑向量,至少有一个值是真的吗?
因此,在比较 a == b 中,甚至没有一个值产生 TRUE。
如果是这种情况,“any”如何返回 FALSE 而“all”返回 TRUE? '全部'
被描述为给定一组逻辑向量,所有的值都是真的吗?。
简而言之:所有值都为 TRUE,而没有一个同时为 TRUE? 我不是专家,但这看起来很奇怪。
问题:
-
是否有合理的解释,或者只是 R 的一些怪癖?
-
有什么方法可以解决这个问题?
由reprex package (v0.3.0) 于 2021-01-08 创建
【问题讨论】:
-
那是因为
a == b这里是空的(因为a是空的)。 -
您从手册中引用的完整句子是:“如果'x'中的至少一个值是'TRUE',则返回的值是'TRUE',如果所有的都是'FALSE' 'x' 中的值是 'FALSE'(包括如果没有值)”(强调添加)
标签: r logic comparison