【发布时间】:2018-05-24 03:25:10
【问题描述】:
我试图生成一系列索引,其中连续的 1 出现在向量中,我偶然发现了这种特殊情况。为什么奇怪,因为我不明白all() 何时给出 TRUE 这意味着每个值都是 TRUE 所以any() 也应该给出 TRUE ,但这里不是这种情况。
all(numeric(0))
# [1] TRUE
any(numeric(0))
# [1] FALSE
我发现的大多数问题都涉及将 numeric(0) 与数字进行比较以及如何避免生成 numeric(0)
【问题讨论】:
-
请参阅
?all中的“备注”部分了解有关此内容的一些信息。 -
@Marius 两个文档都声称零长度向量被忽略。所以这不是AFAIAC的解释。
-
@Marius 我实际上询问了 all(numeric(0)) 这在 ?all 中没有提到。 R 对 numeric(0) 和logical(0) 的看法不同吗?
-
numeric(0)首先会被强制转换为logical(0),所以它们应该被同等对待。我还应该提到,我不打算将?all中的详细信息视为问题的答案,只是一个起点 - 因此作为评论发布。 -
?all声明“返回的值为 TRUE[...](包括如果没有值)”。?any声明“返回的值是 [...] FALSE [...](包括如果没有值)。”这就是函数的定义方式。至于为什么他们是这样定义的。我假设它可以确保 R 中的其他操作按预期工作。
标签: r