【发布时间】:2018-01-04 17:49:54
【问题描述】:
在给定的双向量上,我怎么能定义-999到NA by
v[v == -999] <- NA
但不是
v[v == NaN] <- NA
以及如何正确地将NaN 转换为NA?
【问题讨论】:
在给定的双向量上,我怎么能定义-999到NA by
v[v == -999] <- NA
但不是
v[v == NaN] <- NA
以及如何正确地将NaN 转换为NA?
【问题讨论】:
== 不适用于测试 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
【讨论】:
NA 或NaN 没有什么特别之处。使用lapply、sapply、[[、for 循环,无论您通常会使用什么。