NaN 和 NA 有什么区别?

机器算法验证 r
2022-01-23 07:28:57

我想知道为什么像 R 这样的语言既有 NA 又有 NaN。有什么区别或它们是否相同?真的需要NA吗?

4个回答

?is.nan

?is.na

?NA

?NaN

应该回答你的问题。

但是,简而言之:

NaN 表示 -- 代表非数字00

NA 通常被解释为缺失值并且有多种形式 - NA_integer_、NA_real_ 等。

因此,NaN NA 并且需要 NaN 和 NA。

NA 用于缺失数据。正如 JM 所说,NaN 用于算术目的。NaN 通常是一些算术运算的乘积,例如0/0. NA 通常是提前声明的,或者是当您尝试访问不存在的内容时的操作产物:

 > a <- c(1,2)
 > a[3]
   [1] NA 

我认为 NA 代表“不可用”,而 NaN 是“不是数字”,尽管这比解释更容易记忆。顺便说一句,除了 R(也许是 Splus?)之外,我不知道两者兼有。例如,Matlab 只有 NaN。

NA 表示当您将电子表格导入 R 时错误已经存在。 NaN 表示您在导入数据后导致错误。这是第三种非常难以捕捉的错误。

:-)