如何在R

时间:2017-02-17 10:07:12

标签: r regression kriging automap

我想使用R中的autokrige函数在数据集上应用通用克里金法。我想为预测点创建自己的自定义空间网格(对于autokrige的new_data参数)。我使用的是R版本3.2.2(64位)和RStudio版本0.99.486。以下是我到目前为止所做的事情:

library(automap)
library(sp)
library(gstat)
library(raster)
library(rgdal)

data(meuse)
coordinates(meuse) <- ~x + y
proj4string(meuse) <- CRS("+init=epsg:28992")

从stackexchange here收到以下代码(归功于Jeffrey Evans)并用于为预测值创建自定义空间网格:

ext_meuse <- as(extent(meuse), "SpatialPolygons")
r_meuse <- rasterToPoints(raster(ext_meuse, resolution = 59), spatial = TRUE)
proj4string(r_meuse) <- proj4string(meuse)

然后我尝试使用autoKrige应用通用克里金(在'dist'列上回归):

kriging_result = autoKrige(zinc~dist, meuse, r_meuse)

然后收到以下错误:

  

model.frame.default中的错误(terms.f,newdata,na.action = na.action,:     对象不是矩阵另外:警告信息:     'newdata'有3102行但找到的变量有1行

我是否在创建网格时犯了错误(r_meuse)?是否有更好的方法为预测数据创建网格?到目前为止我找到的所有示例都使用了meuse.grid数据,但是我想将通用克里金法应用于其他没有自己的网格数据的数据。

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是你在没有预测变量dist的情况下执行英国r_meuse。这是一个问题,因为线性需要信息来进行预测。因此,r_meuse必须是定义SpatialPointsDataFrame的{​​{1}}。