1 つの ncdf ファイルを読み込もうとしましたが、ヘッダーには欠落している値が "Missval:1e+30" であると書かれていますが、データには 9999 が表示されています。linux で ncdump を確認しましたが、問題ありません。それによって欠損値を認識します。欠損値を取り除くために、このような問題にどのように取り組むことができますか?
head(get.var.ncdf(nc,4))
[1] 9999 9999 9999 9999 9999 9999
1 つの ncdf ファイルを読み込もうとしましたが、ヘッダーには欠落している値が "Missval:1e+30" であると書かれていますが、データには 9999 が表示されています。linux で ncdump を確認しましたが、問題ありません。それによって欠損値を認識します。欠損値を取り除くために、このような問題にどのように取り組むことができますか?
head(get.var.ncdf(nc,4))
[1] 9999 9999 9999 9999 9999 9999
R は特殊記号NA
を使用して欠損値をコーディングします。
データに欠損値をコード化するための 9999 がある場合、メタデータ ヘッダーが間違っているため、手動で置き換える必要があります。通常、次のようにします。
> x = c(1,2,3,9999,55,9999)
> x[x==9999] <- NA
> x
[1] 1 2 3 NA 55 NA
行列オブジェクトの置換も同様です。そして基本的なRのもの。
データに 9999 の値だけでなく、すでにいくつかの NA 値がある可能性があります。確認してくださいany(is.na(x))
- TRUE の場合、そこに少なくとも 1 つの NA があります (おそらく、ヘッダーのデータ値が欠落していることが原因です)。
問題はパッケージ「ncdf」から来ていますが、「RNetCDF」をインストールします
パッケージとすべてがうまく機能しています。
head(var.get.nc(nc,5))
[1]ななななななななな
しかし、良いパッケージを見つけるのは難しい場合があります。