从R中的shapefile构建权重矩阵

Constructing weight matrix from shapefile in R

我正在尝试从 R 中的 shapefile (.shp) 构建空间权重矩阵。问题是,我什至不知道如何去做。而且我找不到任何参考资料。我发现大部分教程只描述了如何使用 shapefile/map 一般或他们使用已经可用的邻居列表(例如 columbus.nb)。

任何帮助将不胜感激。提前致谢。

希望以下代码对您有所帮助:

shapefile <- rgdal::readOGR(“shapefile_file.shp”)
coordinatess <- sp::coordinates(shapefile)
shapefile.knn <- spdep::knearneigh(coordinatess, k = number_of_shapefile_rows)
shapefile.nb <- spdep::knn2nb(shapefile.knn)

#list:
dist <- spdep::nbdists(shapefile.nb,coordinates)
dist2 <- lapply(dist, function(x) 1/(x^2)) 

#listw:
dist2.listw <- spdep::nb2listw(shapefile.nb, glist=dist2)

#matrix:
dist2.mat <- spdep::listw2mat(dist2.mat)

它创建倒平方距离矩阵 - 在我看来通常是空间计量经济学中的最佳选择。它可以很容易地更改为获取 k 最近邻矩阵或倒置距离矩阵。

必需的包写在'::'运算符之前。您需要安装它们。

我认为这段代码行

dist2.mat <- spdep::listw2mat(dist2.mat)

有错误,应该是

listw2mat(dist2.listw ) 

改为