NaN和Inf的区别,以及在R中NULL和NA的区别是什么?

34

在R中,NaN和Inf与NULL和NA有什么区别?

为什么?NA?NULL告诉我"NA"的长度为"1",而NULL的长度为"0"?


NaN与Inf在所有计算机语言(以及标准数学定义)中都非常一致。0/0是NaN的一个例子,而1/0是Inf的一个例子。 - Carl Witthoft
2个回答

44
简而言之
NaN  : means 0/0 -- Stands for Not a Number
NA   : is generally interpreted as a missing, does not exist or undefined
NULL : is for empty object.

要得到准确的定义,你可以阅读文档,文档写得非常好。

5
这个答案包含至少两个错误陈述。是的,0/0返回NaN,但是例如log(-1)也会返回NaN。因此,NaN并不意味着0/0。它实际上意味着“未定义”(在数学意义上)。NA并不意味着“不存在”。它实际上意味着“未知”。 - Roland
@Roland,请随意修改。我匆忙写的。 - agstudy

29

在R语言中有两个紧密相关的空值: NANULL。它们都用于表示缺失或未定义的值。

NULL 表示空对象,是一个保留字。在表达式和函数返回值不确定时,NULL 会被使用。

NA 是一个长度为1的逻辑常量,包含一个缺失值指示器。除了原始向量,NA 可以自由地强制转换为任何其他向量类型。此外,还有其他原子向量类型的常量 NA_integer_, NA_real_, NA_complex_NA_character_ 支持缺失值: 所有这些都是R语言中的保留字。


6
建议阅读 http://www.r-bloggers.com/r-na-vs-null/。 - Waldir Leoncio
即使-0返回0,似乎1/0返回Inf,但1/-0返回-Inf - Heikki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接