与えられた二重ベクトルで、どうして-999
をNA
に定義できるのか
v[v == -999] <- NA
だがしかし
v[v == NaN] <- NA
NaN
をNA
に正しく変換するにはどうすればよいですか?
_==
_は、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
_