我开始使用SpatialPolygonsDataFrame,其中包含用于创建加纳地区 Map 的数据(可在http://www.diva-gis.org/datadown获取) . 我正在尝试创建一个矩阵,其中区域的名称为行和列名称,内部为0/1,以指示两个区域是否相邻(相邻) .
我在spdep中发现了几个看起来很有希望的函数,但我无法弄清楚如何将它们用于此目的 . 我能够使用poly2nb创建一个包含数据的“nb”文件,但我不确定如何从这里开始,或者即使我在正确的轨道上 .
我真的很感激任何帮助!谢谢!
2 回答
我想你正在寻找
gTouches
:快速浏览一下,它看起来是正确的:
我需要点击
ghana@data
并将条目映射到管理区域名称 .请不要滥用rgeos . 这不是一个令人满意的答案 - 没有地区名称 . 原始问题在任何情况下都是微不足道的,因为
spdep::nb2mat()
这样做(对矩阵行和列名称有点小心):使用
rgeos::gTouches()
可以工作,特别是如果使用returnDense=FALSE
参数(即不返回矩阵),但如果需要捕捉则可能失败 .spdep::poly2nb()
是首选路由,因为它使捕捉成为可能,并且因为nb S3类比矩阵更灵活 .可以使用
rgeos::gUnarySTRtreeQuery()
的输出来填充spdep::poly2nb()
,它提供具有重叠边界框的多边形列表作为候选邻居 . 这可以快速处理非常大的数据集 .您还可以在R-sig-geo上发布与R-spatial相关的问题 .