2013-07-31 23 views
1

功能idw()krige()不断报告错误匹配时,无论反应或预测变量包含缺失值(NA),即使na.action设置为na.omitIDW()或克里格()错误:尺寸不从<code>gstat</code>包缺失值时

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选项呢?

回答

3

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

?idw/?krige/?predict.gstat

function determining what should be done with missing values in 'newdata'. The default is to predict 'NA'. Missing values in coordinates and predictors are both dealt with.

没有应对locationsdata(并因此使误差范围内NA值,其基本上是说,有在的位置作为两个以上值的方法是明确指出数据(即x和y丢失的数据点的坐标)

你可以得到它通过与缺失值

移除位置工作