我有两个数据框。一个是空间多边形,另一个是空间点数据帧。不幸的是,我无法重现整个示例,但Spatial Polygon看起来像这样:
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的坐标,但我不确定这实际上有什么帮助。有什么建议?
答案 0 :(得分:3)
您需要over
中的sp
,您可以像这样使用它:
require( sp )
ID <- over( SpatialPoints( ppData ) , electorate )
ppData@data <- cbind( ppData@data , ID )
这将返回一个data.frame
,其中每一行与第一个参数(每个轮询点)相关,并且是该点落入的多边形中的数据。您可以在之后将它们绑定,然后您现在拥有与每个点相关的多边形数据。