2016-05-14 1 views
-2

Je veux trouver les états voisins pour un état particulier donné aux États-Unis grâce à son code postal dans R, quelqu'un peut-il m'aider à aller de l'avant?Comment trouver des états voisins à l'aide des informations de code postal dans R

merci à l'avance!

+0

J'ai créé une feuille de calcul Excel qui répertorie tous les états contigus pour chaque état, que je peux vous envoyer, mais je ne sais pas comment réaliser que R avec les codes postaux. – lawyeR

+0

Bienvenue dans StackOverflow. S'il vous plaît lire (1) [Comment puis-je poser une bonne question] (http://stackoverflow.com/help/how-to-ask), (2) [Comment créer un MCVE] (http://stackoverflow.com/help/mcve) ainsi que (3) [comment fournir un exemple minimal reproductible dans R] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example # answer-5963610). Ensuite, éditez et améliorez votre question en conséquence. Par exemple, fournissez des données d'entrée, le résultat attendu, les lignes de code que vous avez essayées et de quelle manière elles ont échoué. – lukeA

Répondre

0

obtenir une liste des codes postaux, les faire correspondre avec les états, obtenir un fichier de forme des états et les voisins calculer. Fondamentalement, cela pourrait fonctionner comme ceci:

# 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"