2013-04-15 42 views
4

我試圖找出我如何執行(以GIS那麼容易)的方式操作在R.在R中,我如何連接和子集SpatialPolygonsDataFrame?

讓我們採取一些例如多邊形數據從spdep包設置

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

我已經成功弄清楚我可以使用subset選擇邏輯語句的多邊形。例如:

CC < - 子集(C,C @數據$ POLYID < 5)圖(CC)

現在,讓我們假設我有,我想加入另一個數據幀我的空間數據:

POLYID=1:9 
TO.LINK =101:109 
link.data <- data.frame(POLYID=POLYID, TO.LINK=TO.LINK) 

使用這兩個數據集,我怎麼能得到兩個空間數據幀:

  1. 首先,由具有其ID在第二數據幀
  2. 其次,由相對的一組的多邊形的 - 即沒有在第二數據幀中存在的多邊形。

我怎麼會走到這一步?

回答

5

這可能會奏效。首先,你需要你的相關ID。

myIDs <- link.data$POLYID 

然後,使用subset如你指出:

subset(c, POLYID %in% myIDs) 
subset(c, !(POLYID %in% myIDs)) 

注意,這裏假設你的第一個數據幀,c,也有被稱爲POLYID相關支柱。

+0

謝謝。工作=) – radek