当将Inf和-Inf与NA_real_进行比较时,返回的一些值使我感到惊讶。
具体地说:
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的值,对吗?也许我误读了文档
发布于 2019-03-30 04:49:18
给你指点的地方是:
?Arithmetic
?Inf
?`>`第一种方法表明,IEEE 754通常用于:
R依赖于OS服务(它们也依赖于FPU)来实现浮点算法.在所有当前的R平台上,都使用IEC 60559 (也称为IEEE754)算法,但这些标准中的某些内容是可选的。特别是,对于异常数的支持(超出.Machine给出的范围)在不同平台之间甚至在单个平台上的计算都可能有所不同。
第二个表示无穷大的算术应该“工作”:
在R中,基本上所有的数学函数(包括基本算法)都应该以+/- Inf和NaN作为输入或输出正常工作。
但是,第三个表示涉及NA的任何逻辑比较都返回NA。
缺失值( NA )和NaN值被认为是不可比较的,因此涉及它们的比较总是会导致NA。
所以问题不是某些东西比Inf“大”,而是R在调用一个与缺失值的比较时返回一个缺失的值。
https://stackoverflow.com/questions/55428077
复制相似问题