web-dev-qa-db-ja.com

NaNをNAに正しく変換する方法

与えられた二重ベクトルで、どうして-999NAに定義できるのか

v[v == -999] <- NA

だがしかし

v[v == NaN] <- NA

NaNNAに正しく変換するにはどうすればよいですか?

5
Comfort Eagle

_==_は、NAおよびNaN値のテストには機能しません。これは、データの観点から、2つの欠落値が同じである場合と同じでない場合があるためです。 is.na()is.nan()を使用してそれらをテストします。

必要なのはv[is.nan(v)] <- NAです

詳細については、ヘルプページの_?NaN_および_?NA_を参照してください。

これはヘルプページに記載されていますが、NaNは特別なタイプのNAとして扱われるため、次のように動作することを指摘しておく価値があります。

_> is.na(NaN)
[1] TRUE

> is.nan(NA)
[1] FALSE
_
15
Gregor Thomas