2013-08-01 19 views
4

我有两个数据帧。一个是空间多边形,另一个是空间点数据框。不幸的是我不能在这里重现整个的例子,但空间多边形是这样的:Can R是否可以将纬度和经度点合并到空间多边形中的区域?

 head(electorate) 
    ELECT_DIV STATE NUMCCDS ACTUAL PROJECTED POPULATION OVER_18 AREA_SQKM SORTNAME 
    Adelaide SA  318  0   0   0  0 76.0074 Adelaide 
     Aston VIC  191  0   0   0  0 99.0122 Aston 
    Ballarat VIC  274  0   0   0  0 4651.5400 Ballarat 
     Banks NSW  229  0   0   0  0 49.3189 Banks 
     Barker SA  343  0   0   0  0 63885.7100 Barker 
     Barton NSW  234  0   0   0  0 44.1112 Barton 

正如你可以看到它是为澳大利亚选民的空间的多边形。第二个数据框是一个空间点数据框,具有经度和纬度,用于轮询地点。它看起来像这样 -

head(ppData) 
    State PollingPlaceID PollingPlaceNm Latitude Longitude 
1 ACT   8829   Barton -35.3151 149.135 
2 ACT   11877   Bonython -35.4318 149.083 
3 ACT   11452   Calwell -35.4406 149.116 
4 ACT   8794 Canberra Hospital -35.3453 149.099 
5 ACT   8761   Chapman -35.3564 149.042 
6 ACT   8763   Chisholm -35.4189 149.123 

我的目标是尽量满足每个投票站(PollingPlaceID)以适当的选举司(ELECT_DIV)。每个部门内都会有很多投票站。把它们叠在一起不成问题。看起来很自然,R还会让我在我的投票站数据框(ppData)中添加一个新的矢量,该数据框为每个投票位置分配选区(ELECT_DIV)。

我知道我可以从coordinates(electorate)的选区中提取每个ELECT_DIV的坐标,但我不确定实际上有帮助。有什么建议?

回答

3

你需要从spover,你可以使用它像这样:

require(sp) 
ID <- over(SpatialPoints(ppData) , electorate) 
[email protected] <- cbind([email protected] , ID) 

这将返回一个data.frame其中每行涉及到的第一个参数(每个投票点),并从多边形数据那就是点了。你可以在之后将它们绑定,然后你就可以得到与每个点相关的多边形数据。

+0

谢谢!不幸的是,我得到这个错误: identicalCRS(x,y)不是真 –

+0

好,所以它工作,如果我删除SpatialPoints()函数。干杯 –

相关问题