您正在尝试调用一个localG
没有与 sp 或 raster 类关联的方法的类对象。这是栅格化本地 G 结果的工作流程。
首先,添加包和数据。meuse 对象属于 SpatialPointsDataFrame,meuse.grid 以 SpatialGridDataFrame 开头,但被强制转换为 rasterLayer 对象以对点数据进行光栅化。
library(spdep)
library(raster)
data(meuse)
coordinates(meuse) <- ~x+y
proj4string(meuse) <- CRS("+init=epsg:28992")
data(meuse.grid)
coordinates(meuse.grid) = ~x+y
proj4string(meuse.grid) <- CRS("+init=epsg:28992")
gridded(meuse.grid) = TRUE
meuse.grid <- raster(meuse.grid)
这里我们进行局部 G 分析。
nb <- dnearneigh(coordinates(meuse), 0, 500)
G <- localG(meuse$cadmium, nb2listw(nb, style="B"))
这是我们可以强制localG结果,将它们连接到点数据并栅格化结果的地方。您可以as.numeric
用于从 localG 对象(基本上是列表对象)进行强制。请阅读帮助raster::rasterize
。该x
参数需要 SpatialPoints 或坐标矩阵,y
是一个 rasterLayer 对象,用于提供栅格尺寸并field
表示正在栅格化的属性。如果您需要 NA 以外的栅格的背景值,请使用该background
参数。
meuse$G <- as.numeric(G)
spplot(meuse, "G")
Gr <- rasterize(coordinates(meuse), meuse.grid, field = meuse$G, background = NA)