[英]Why does NA_real_ <= Inf return NA?
將Inf
和-Inf
與NA_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.