4

我有两个数据框。一个是空间多边形,另一个是空间点数据框。不幸的是,我无法在这里重现整个示例,但空间多边形看起来像这样:

     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)。

我知道我可以从选民中提取每个 ELECT_DIV 的坐标,coordinates(electorate)但我不确定这是否真的有帮助。有什么建议吗?

4

1 回答 1

3

您需要overfromsp并且可以像这样使用它:

require( sp )
ID <- over( SpatialPoints( ppData ) , electorate )
ppData@data <- cbind( ppData@data , ID )

这将返回data.frame每行与第一个参数(每个轮询点)相关的位置,并且是该点所在多边形的数据。之后您可以 cbind 它们,您现在拥有与每个点相关的多边形数据。

于 2013-08-01T10:30:20.390 回答