2013-01-23 160 views
0

我試圖讀取一個ncdf文件, 在寫入的缺失值是「Missval:1e + 30」,但在數據中我看到9999。 我在Linux中檢查與ncdump,並沒有問題。並由此認識到缺失的價值。 我該如何解決這個問題以擺脫缺失值?ncdf缺失值

head(get.var.ncdf(nc,4)) 

[1] 9999 9999 9999 9999 9999 9999

+0

你能提供一個可重複的例子嗎? –

回答

1

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(可能來自標題中缺少的數據值)。

+0

謝謝,但我認爲這個問題來自ncdf包。 – user2004633

+0

那麼,如果沒有看到有問題的數據文件,我們就無法看到問題。 – Spacedman

0

我找到了答案,這個問題是由包來了「ncdf」但我現在安裝「RNetCDF」

封裝,每一件事情運轉良好。

head(var.get.nc(nc,5)) 

[1] NA NA NA NA NA NA

但我發現有時找到好的包是棘手的。