2015-07-13 141 views
1

我有兩個包含地理編碼的數據框。第一個看起來像這樣:R中的多邊形裁剪

spoints<- data.frame(x=c(1,2,3,4,5,6),y=c(6,5,4,3,2,1)) 

spoints映射一個國家。

我的第二個數據幀是這樣的:

polyData<-data.frame(x=c(1,2,3,4,5,6,7,8,9,10),y=c(10,9,8,7,6,5,4,3,2,1), 
col=c("a","b","c",etc.), id=c("a","b","c",etc.), average=c(44,33,66,55,etc)) 

這其中包含了座標以創建維諾集羣/多邊形。但這些正在繪製與海洋重疊的多邊形。所以,我想避免這種情況,讓他們停在國界。

但是現在,我很難使用GPC庫或其他庫。

有人可以幫助我嗎?

+0

您可以使用[rgeos(http://cran.r-project.org/web/packages/rgeos/rgeos.pdf)庫? 'gIntersection'函數是你想要的。 –

+0

那麼,它會使用兩個數據幀並指示重疊? –

回答

0

這是一個使用我在評論中提到的rgeos庫的示例。

library(rgeos) 
library(sp) 

#making set of polygons for illustration 
d1 <- readWKT("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))") 
Tri <- c("POLYGON((0.3 0.6, 0.6 0.6, 0.5 1.3, 0.3 0.6))", 
     "POLYGON((0.7 0.3, 1.3 0.3, 1.1 0.6, 0.7 0.3))") 
d2 <- readWKT(text=paste0("GEOMETRYCOLLECTION(",paste0(Tri,collapse=","),")"), 
     id=c("a","b")) 

plot(d1,xlim=c(0, 1.4), ylim=c(0, 1.4)) 
plot(d2,col='red',add=TRUE) 

#now taking the intersection 
d3 <- gIntersection(d1,d2,byid=TRUE) 
plot(d3,col='blue',add=TRUE) 

enter image description here