我試圖讀取一個ncdf文件, 在寫入的缺失值是「Missval:1e + 30」,但在數據中我看到9999。 我在Linux中檢查與ncdump,並沒有問題。並由此認識到缺失的價值。 我該如何解決這個問題以擺脫缺失值?ncdf缺失值
head(get.var.ncdf(nc,4))
[1] 9999 9999 9999 9999 9999 9999
我試圖讀取一個ncdf文件, 在寫入的缺失值是「Missval:1e + 30」,但在數據中我看到9999。 我在Linux中檢查與ncdump,並沒有問題。並由此認識到缺失的價值。 我該如何解決這個問題以擺脫缺失值?ncdf缺失值
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東西。
您的數據中可能已經有一些NA值以及9999的值。請與any(is.na(x))
覈對 - 如果爲TRUE,那裏至少有一個NA(可能來自標題中缺少的數據值)。
謝謝,但我認爲這個問題來自ncdf包。 – user2004633
那麼,如果沒有看到有問題的數據文件,我們就無法看到問題。 – Spacedman
我找到了答案,這個問題是由包來了「ncdf」但我現在安裝「RNetCDF」
封裝,每一件事情運轉良好。
head(var.get.nc(nc,5))
[1] NA NA NA NA NA NA
但我發現有時找到好的包是棘手的。
你能提供一個可重複的例子嗎? –