繁体   English   中英

为什么 NA_real_ <= Inf 返回 NA?

[英]Why does NA_real_ <= Inf return NA?

Inf-InfNA_real_进行比较时返回的一些值让我感到惊讶。

具体来说:

NA_real_ <= Inf
#[1] NA
-Inf <= NA_real_
#[1] NA

NA ( help(NA) )文档的第一句话是

NA是一个长度为 1 的逻辑常数,其中包含一个缺失值指示符。

我想一定有一些不小于或等于Inf值和一些不大于或等于-Inf 这些价值观是什么? 你如何在 R 中表示它们? 请提供完整列表。

我对NaN有点熟悉,但是这些不是产生于产生的结果完全超出double精度可以存储的正确值范围的计算吗? 我不知道Inf - Inf到底是什么,但它不能大于Inf double应该实现的 IEEE 标准中,什么比Inf大? 该标准是否简单地定义了任何涉及NaN操作都返回NaN 那么为什么 R 不返回NaN呢? NA不是 IEEE 754 值,是吗? 也许我误读了文档

指向您的地方是:

?Arithmetic
?Inf
?`>`

第一个表示通常使用 IEEE 754:

R 依赖于操作系统服务(它们在 FPU 上)进行浮点运算。 在所有当前的 R 平台上都使用 IEC 60559(也称为 IEEE 754)算法,但这些标准中的某些内容是可选的。 特别是,对非正规数(.Machine 给出的范围之外的那些)的支持可能因平台而异,甚至在单个平台上的计算之间也可能不同。

第二个表示无穷大的算术应该“工作”:

在 R 中,基本上所有数学函数(包括基本算术)都应该以 +/- Inf 和 NaN 作为输入或输出正常工作。

但是,第三个表示任何涉及NA逻辑比较都会返回NA

缺失值 (NA) 和 NaN 值甚至被认为是不可比的,因此涉及它们的比较总是会导致 NA。

因此,问题不在于某些东西“大于” Inf ,而是在调用与缺失值的比较时 R 返回缺失值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM