如何正确地将 NaN 转换为 NA

How to correctly convert NaN to NA

在给定的双向量上,我怎么可以通过

定义-999NA
v[v == -999] <- NA

但不是

v[v == NaN] <- NA

以及如何正确地将 NaN 转换为 NA

== 不适用于测试 NANaN 值。这很好,因为从数据的角度来看,两个缺失值可能相同也可能不同。使用 is.na()is.nan() 进行测试。

你要的是v[is.nan(v)] <- NA

您可以在 ?NaN?NA 的帮助页面中找到详细信息。

帮助页面上提到了这一点,但值得指出的是 NaN 被视为一种特殊类型的 NA,因此我们得到了这种行为:

> is.na(NaN)
[1] TRUE

> is.nan(NA)
[1] FALSE