在给定的双向量上,为什么我可以通过
将-999
定义为NA
v[v == -999] <- NA
但不是
v[v == NaN] <- NA
如何正确地将NaN
转换为NA
?
答案 0 :(得分:15)
==
无法测试NA
和NaN
值。这很好,因为从数据的角度来看,两个缺失值可能相同也可能不同。使用is.na()
和is.nan()
来测试这些内容。
你想要的是v[is.nan(v)] <- NA
您可以在?NaN
和?NA
的帮助页面中找到详细信息。
帮助页面上提到了这一点,但值得指出的是NaN
被视为特殊类型的NA
,因此我们会遇到这种情况:
> is.na(NaN)
[1] TRUE
> is.nan(NA)
[1] FALSE