我试图找出如何在 R 中执行(在 GIS 中如此简单)操作的方法。

让我们以 spdep 包中的一些多边形数据集为例

library("spdep")
c <- readShapePoly(system.file("etc/shapes/columbus.shp", package="spdep")[1])
plot(c)

我设法弄清楚我可以使用 subset 选择带有逻辑语句的多边形。例如:



现在,让我们假设我有另一个数据框要加入我的空间数据:
POLYID=1:9
TO.LINK =101:109
link.data <- data.frame(POLYID=POLYID, TO.LINK=TO.LINK)

使用这两个数据集,我如何获得两个空间数据框:
  • 首先,由在第二个数据帧中具有 ID 的多边形组成
  • 第二,由相反的集合组成——第二个数据框中不存在的多边形。

  • 我怎么能走到这一步?

    最佳答案

    这可能会奏效。首先,您需要相关的 ID。

    myIDs <- link.data$POLYID
    

    然后,如您所指出的那样使用 subset :
    subset(c, POLYID %in% myIDs)
    subset(c, !(POLYID %in% myIDs))
    

    请注意,这假设您的第一个数据框 c 也有一个名为 POLYID 的相关列。

    关于r - 在 R 中,我如何加入和子集 SpatialPolygonsDataFrame?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16018704/

    10-09 14:02