首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么NA_real_ <= Inf返回NA?

为什么NA_real_ <= Inf返回NA?
EN

Stack Overflow用户
提问于 2019-03-30 04:16:36
回答 1查看 1.5K关注 0票数 2

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

具体地说:

代码语言:javascript
复制
NA_real_ <= Inf
#[1] NA
-Inf <= NA_real_
#[1] NA

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

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

我认为必须有一些不小于或等于Inf的值,以及一些不大于或等于-Inf的值。这些价值观是什么?你如何在R中表示它们?请提供完整的清单。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-30 04:49:18

给你指点的地方是:

代码语言:javascript
复制
?Arithmetic
?Inf
?`>`

第一种方法表明,IEEE 754通常用于:

R依赖于OS服务(它们也依赖于FPU)来实现浮点算法.在所有当前的R平台上,都使用IEC 60559 (也称为IEEE754)算法,但这些标准中的某些内容是可选的。特别是,对于异常数的支持(超出.Machine给出的范围)在不同平台之间甚至在单个平台上的计算都可能有所不同。

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

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

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55428077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档