2013-03-19 78 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. 

对于一个确切的定义,你可以阅读文档,这是写得很好。

相关问题