在R中为什么所有(数字(0))给出TRUE而任何(数字(0))给出FALSE?

SKR*_*SKR 10 r

我试图生成一个索引序列,其中连续的1出现在向量中,我偶然发现了这个特殊的情况.为什么特殊,因为我不明白何时all()给出TRUE它意味着每个值都为TRUE所以any()也应该给出TRUE,这不是这里的情况.

all(numeric(0))
# [1] TRUE
any(numeric(0))
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)

我发现的大多数问题都涉及将数字(0)与数字进行比较以及如何避免生成数字(0)

nei*_*fws 5

由于我的评论有几张选票作为答案,我会在这里发布.

文档?all说明(仅显示相关部分):

返回的值为TRUE [...](包括没有值时)

而且?any,对于相关部分:

返回的值是[...] FALSE [...](包括没有值时)

这些函数以这种方式定义,以便其他操作按预期工作.特别是@bmrn指出:all(all(x), all(y)) == all(x, y).