我尝试读取一个 ncdf 文件,在标题中写入缺失值是 "Missval:1e+30" 但在数据中我看到 9999 。我检查了 linux 中的 ncdump ,这很好。并由此识别缺失值。我该如何解决这样的问题以消除缺失值?
head(get.var.ncdf(nc,4))
[1] 9999 9999 9999 9999 9999 9999
我尝试读取一个 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 东西。
您的数据中可能已经有一些 NA 值以及 9999 值。检查any(is.na(x))
- 如果为 TRUE,则其中至少有一个 NA(可能来自标头中缺少的数据值)。
我找到了答案,问题来自包“ncdf”,但现在我安装了“RNetCDF”
包装和一切运作良好。
head(var.get.nc(nc,5))
[1] NA NA NA NA NA NA
但我发现有时找到好的包装很棘手。