我有一個數據幀的緯度和經度點R.使用R data science toolkit,我可以將這些點國家/州/縣/市/社羣/鄰居,這是非常有用的。分配經/緯來郵政編碼
我想這些點分配給5位數拉鍊碼(或甚至9數字郵政編碼!)中的R或Python。是否有捷徑可尋?
編輯:我發現了一個file that contains zip code boundaries。不幸的是,它是一個.lpk文件。我如何導入到R?
編輯2:我發現一個shape file,這將更容易處理。
我有一個數據幀的緯度和經度點R.使用R data science toolkit,我可以將這些點國家/州/縣/市/社羣/鄰居,這是非常有用的。分配經/緯來郵政編碼
我想這些點分配給5位數拉鍊碼(或甚至9數字郵政編碼!)中的R或Python。是否有捷徑可尋?
編輯:我發現了一個file that contains zip code boundaries。不幸的是,它是一個.lpk文件。我如何導入到R?
編輯2:我發現一個shape file,這將更容易處理。
查找郵政編碼shape文件的某處(.SHP格式,有時也被稱爲 ArcGIS的形狀文件)。
使用maptools
程序包的readShapePoly
命令將其加載到R.
創建SpatialPointsDataFrame舉行點。
確保您的預測是正確的。
使用sp
程序包的overlay
命令將點疊加到多邊形中。
您可能會發現在taRifx軟件包中的cleanLatLon
有幫助。
我在哪裏可以找到一個郵政編碼shapefile?我如何確保我的預測是正確的?正如我所說,現在我只有一個經緯度點的列表,沒有相關的投影... – Zach
**投影**:只要你的shapefile在緯度/經度上,就沒問題。否則,你將不得不將它們投影到相同的格式。編輯你的文章,當你有一個shapefile,如果你需要項目我會發布更多的細節。 ** Shapefile **:在這裏嘗試http://www.cartotalk.com/index.php?showtopic=4416。另外,許多大學圖書館都備有ESRI Maps&Data光盤,因爲他們免費獲得網站許可證。 –
好的,我在這裏找到了一個shapefile。我如何將它導入到R?這是一個.lpk文件:http://www.arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 – Zach
我跑什麼GSK3放在一起,它的工作就像一個魅力。這是特定的代碼。我還包括我的latlong數據框的str以供參考。
> # Shape files found here by state: http://www.census.gov/geo/www/cob/z52000.html#shp
>
> library(maptools)
> library(maps)
>
> zip.map <- readShapePoly("zt48_d00.shp")
> latlong <- read.csv("latlong.csv")
> str(latlong)
'data.frame': 2102 obs. of 3 variables:
$ ref : Factor w/ 1594 levels ...
$ lat : num 32.9 32.9 32.9 32.9 32.9 ...
$ long: num -96.7 -96.7 -96.7 -96.7 -96.7 ...
> coordinates(latlong) = ~long+lat
> write.csv(cbind(latlong, overlay(zip.map,latlong)),"zip.match.csv")
嘗試在R上的包'zipcode'其中有5層郵編全面上市。這裏有一個關於它包含什麼的簡短描述的鏈接 - http://www.r-bloggers.com/my-first-r-package-zipcode/ – Ramnath
@Ramnath:如果不需要精度,那麼這將工作得很好。但基本上,因爲它包含質心,你將不得不考慮每個郵政編碼一個圓圈。取決於他的需求。 –
@Ramnath:給定經緯度點,我如何使用'zipcode'包將其分配給一個郵政編碼?我的直覺是使用距離公式來找到最接近的郵政編碼中心,但直覺往往是錯誤的... – Zach