R能否将经度和纬度点合并到空间多边形区域中?

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

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

1个回答

3
您需要从 sp 中获取 over,并可以按如下方式使用它:
require( sp )
ID <- over( SpatialPoints( ppData ) , electorate )
ppData@data <- cbind( ppData@data , ID )

这会返回一个data.frame,其中每一行都与第一个参数(您的每个调查点)相关,并且是点所在多边形的数据。之后您可以将它们简单地使用cbind合并,现在您就有了与每个点相关的多边形数据。


抱歉!我遇到了一个错误: identicalCRS(x, y) 不为 TRUE。 - hubert_farnsworth
1
好的,如果我删除SpatialPoints()函数,它就可以工作。干杯 - hubert_farnsworth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接