gpt4 book ai didi

r - 怎么可能所有 (`all` ) 都为真而没有 (`any` ) 同时为真?

转载 作者:行者123 更新时间:2023-12-03 20:23:51 24 4
gpt4 key购买 nike

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 的一些怪癖?
  • 有什么方法可以解决这个问题?

  • 创建于 2021-01-08 由 reprex package (v0.3.0)

    最佳答案

    通常,比较时a == b根据需要回收较短向量的元素。但是,在您的情况下 a没有元素,所以不会发生回收,结果是一个空的逻辑向量。any(a == b)的结果和 all(a == b)与所有的逻辑量词一致并且存在。如果您在一个空范围内进行量化,则 for all 给出逻辑合取 (AND) 的中性元素,即 TRUE ,而exists给出了逻辑析取(OR)的中性元素,即FALSE .
    至于如何避免这些情况,请检查向量是否具有相同的大小,因为比较不同长度的向量很少有意义。

    关于r - 怎么可能所有 (`all` ) 都为真而没有 (`any` ) 同时为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65637182/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com