从R中的shapefile构造权重矩阵

时间:2016-05-27 16:22:45

标签: r shapefile

我正在尝试从R中的shapefile(.shp)构造一个空间权重矩阵。问题是,我甚至没有任何一个想法如何去做。我找不到任何参考资料。我发现的大部分教程仅描述了如何使用shapefile / map或者使用已经可用的邻居列表(例如columbus.nb)。

任何帮助都将非常感激。提前谢谢。

2 个答案:

答案 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 ) 

代替