从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 )
改为
我正在尝试从 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 )
改为