我正在尝试从R中的shapefile(.shp)构造一个空间权重矩阵。问题是,我甚至没有任何一个想法如何去做。我找不到任何参考资料。我发现的大部分教程仅描述了如何使用shapefile / map或者使用已经可用的邻居列表(例如columbus.nb)。
任何帮助都将非常感激。提前谢谢。
答案 0 :(得分:1)
我希望以下代码可以提供帮助:
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个最近邻矩阵或倒置距离矩阵。
必需的软件包是在&#39; ::&#39;之前编写的。运营商。你需要安装它们。
答案 1 :(得分:0)
我认为这行代码
dist2.mat <- spdep::listw2mat(dist2.mat)
有错误,应该是
listw2mat(dist2.listw )
代替