2013-03-19 152 views
13

NaN和Inf以及R中的NULL和NA有什麼區別?NaN和Inf以及R中的NULL和NA有什麼區別?

爲什麼?NA?NULL告訴我「NA」的長度爲「1」,而NULL的長度爲「0」?

+3

'0/0'是'NaN'。 '1/0' *是''Inf' in'R'。你檢查過了嗎? – Arun 2013-03-19 10:02:36

+0

我認爲文檔解釋得很清楚。 NA是長度爲1的*邏輯常量*,而NULL則是NULL對象。 – Arun 2013-03-19 10:20:11

+0

NaN vs Inf在所有計算機語言(以及標準數學定義)中都非常一致。 0/0是NaN的一個例子,1/0是Inf的一個例子。 – 2013-03-19 11:20:25

回答

17

在R語言中,有兩個密切相關的類似於零的值:NANULL。兩者都用於表示缺失或未定義的值。

NULL代表空對象,它是一個保留字。 NULL可能由表達式和函數返回,因此值未定義。

NA是長度爲1的邏輯常數,其中包含缺失值指示符。 NA可以自由地強制轉換爲除原始以外的任何其他矢量類型。 支持缺失值的其他原子矢量類型還有常數NA_integer_,NA_real_,NA_complex_NA_character_:所有這些都是R語言中的保留字。

+2

對於它的價值,我還建議閱讀http://www.r-bloggers.com/r-na-vs-null/。 – 2014-01-16 17:06:15

+0

即使'-0'返回'0',似乎是'1/0'返回'Inf',但'1/-0'返回'-Inf'。 – Heikki 2017-11-17 08:43:29

27

總之

NaN : means 0/0 -- Stands for Not a Number 
NA : is generally interpreted as a missing, does not exist 
NULL : is for empty object. 

對於一個確切的定義,你可以閱讀文檔,這是寫得很好。

相關問題