2016-05-14 24 views
-2

我想通过R中的邮政编码信息找到美国给定特定州的邻居州,任何人都可以帮助我了解如何继续使用它?如何通过州的邮政编码信息查找邻国R

在此先感谢!

+0

我创建了一个Excel电子表格列出每个国家,我可以给你所有连续的状态,但我不知道如何实现这一目标中的R与邮政编码。 – lawyeR

+0

欢迎来到StackOverflow。请阅读(1)[我如何问一个好问题](http://stackoverflow.com/help/how-to-ask),(2)[如何创建一个MCVE](http://stackoverflow.com/help/mcve)以及(3)[如何在R中提供最小可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example #回答-5963610)。然后相应地编辑和改进您的问题。即,提供输入数据,预期的输出,你尝试的代码行以及它们失败的方式。 – lukeA

回答

0

获取邮政编码列表,将它们与状态进行匹配,获取状态形状文件并计算邻居。基本上,它可以工作是这样的:

# get data 
library(spdep) 
library(raster) 
# https://www.census.gov/geo/reference/codes/cou.html 
fips <- read.csv("http://www2.census.gov/geo/docs/reference/codes/files/national_county.txt", header=F, col.names = c("STATE", "STATEFP", "COUNTYFP", "COUNTYNAME", "CLASSFP")) 
map <- getData("GADM", country="US", level=2) 

# select by code 
(county <- as.character(subset(fips, STATE=="NY" & STATEFP==36 & COUNTYFP==61, select=COUNTYNAME)[, 1])) 
# [1] New York County 

# get neighbour: 
nbs <- poly2nb(map) # takes some time to get the neighbour counties 
nam <- with([email protected], paste(NAME_2, TYPE_2)) 
lst <- setNames(lapply(unclass(nbs), function(x) nam[x]), nam) 
lst[county] 
# $`New York County` 
# [1] "Bergen County" "Hudson County" "Bronx County" 
相关问题