idw()或krige()错误:缺少值时尺寸不匹配

时间:2013-07-31 19:28:35

标签: r spatial gstat kriging

来自idw()包的函数krige()gstat在响应或预测变量包含缺失值(NA)时保持报告错误,即使na.actionna.omit设置为require(gstat) data(meuse) coordinates(meuse) = ~x+y data(meuse.grid) gridded(meuse.grid) = ~x+y meuse2 <- as.data.frame(meuse) meuse2[1, 'zinc'] <- NA meuse2 <- SpatialPointsDataFrame(SpatialPoints(meuse), meuse2) # idw response var int <- idw(zinc ~ 1, meuse2, meuse.grid, na.action = na.omit) # Error: dimensions do not match: locations 310 and data 154 # krige response var m <- vgm(.59, "Sph", 874, .04) int <- krige(zinc ~ 1, meuse2, meuse.grid, model = m, na.action = na.omit) # Error: dimensions do not match: locations 310 and data 154 # krige predictor var meuse3 <- as.data.frame(meuse) meuse3[1, 'dist'] <- NA meuse3 <- SpatialPointsDataFrame(SpatialPoints(meuse), meuse3) int <- krige(zinc ~ dist, meuse3, meuse.grid, model = m, na.action = na.omit) # Error: dimensions do not match: locations 310 and data 154

na.action

这是一个错误吗?我们是否真的必须手动过滤我们的数据并将结果合并回原始数据框?有没有更简单的解决方案?为什么会有{{1}}选项呢?

1 个答案:

答案 0 :(得分:3)

na.action参数处理newdata内的缺失值(不是locationsdata)。

?idw / ?krige / ?predict.gstat

中明确说明了这一点
  

函数确定“newdata”中缺少值应该做什么。默认是预测'NA'。处理坐标和预测变量中的缺失值。

没有方法可以处理NAlocations中的data值(因此错误基本上是说位置中还有两个值作为数据(即缺失数据点的x和y坐标)

您可以通过删除缺少值的位置

来使其工作
int <- idw(zinc ~ 1, meuse2[!is.na(meuse2$zinc),],newdata= meuse.grid)