我正试图找出如何在r中执行(在GIS中如此容易)操作的方法。
让我们以spdep
包
library("spdep")
c <- readShapePoly(system.file("etc/shapes/columbus.shp", package="spdep")[1])
plot(c)
我已经设法弄清楚,我可以选择多边形与逻辑语句使用subset
。例如:
cc & lt; -子集(c, c@data POLYID<美元;5)情节(cc)
现在,让我们假设我有另一个数据帧,我想连接到我的空间数据:
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
的相关列。