簡體   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