2013-08-01 34 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()函數。乾杯 –

相關問題