2016-08-03 26 views
1
zu erhalten

Ich versuche, eine Karte des von meinem Kunden definierten Verkaufsgebiets zu erstellen, um die in jedem Gebiet erzielten Jahresverkäufe anzuzeigen.Zusammenführen von ZCTA-Grenzen, um benutzerdefiniertes Gebiet anhand von Postleitzahlen in R

Ich habe die ZCTA-Datei von uns Volkszählung cb_2015_us_zcta510_500k.zip heruntergeladen. Ich den folgenden Code verwendet, um das Gebiet der Karte zu erhalten:

en`#reading shapefile 
oregon <- readOGR(dsn = ".", layer = "cb_2013_us_zcta510_500k") 

#alignment data from hive, this is the file that have zip codes corresponding to all the territories 
Territory_Zip_dataunique_zip <- dataTier1 
Territory_Zip_dataunique_zip$l_alignment.zipcode <- clean.zipcodes(Territory_Zip_dataunique_zip$l_alignment.zipcode) 



terrData <- Territory_zip_data_unique_zip 

#Get all the zip codes from my territory file 
terrData1 <- data.frame(Territory_zip_data_master[,1]) 
names(terrData1) <- c("GEOID10") 

#Subset ZCTA file to have only zips that are in my territory file 
oregonSubset <- merge(oregon,terrData1, all.y = F, all.x = F) 

#merge with territory file to get corresponsding territory ids 
natnds <- merge(oregonSubset, terrData, by.x = "GEOID10", by.y = "l_alignment.zipcode", all.y = F, all.x = F) 

#make territory ids as revised ids for polygondataframe 
revised_id <- natnds$l_alignment.territoryid 

#Redefine shapefile based on revised ids 
unionPoly <- unionSpatialPolygons(oregonSubset,revised_id) 

#Fortify the spacialpolygondataframe 
unionPoly_fort <- fortify(unionPoly) 

#Plot 
p <- ggplot() + 
    geom_polygon(data = ds, aes(x = long, y = lat, group = group, 
            fill = id), color = "black", size = 0.25) + 
            theme(legend.position="none", 
             plot.background = element_rect(fill = "transparent",colour = NA), 
             panel.background =element_rect(fill = "transparent",colour = NA), # or theme_blank() 
             panel.grid.minor =element_blank(), 
             panel.grid.major =element_blank(), 
             axis.ticks = element_blank(), 
             axis.text = element_blank(), 
             axis.title = element_blank()) 

ich die folgende Ausgabe

outcome of the plot

Jetzt bekommen, ist das Problem, die Lücken (Leerraum dazwischen) auf der linken Seite die Grafik. Wie kann ich mit diesen Lücken zusammenhängende territoriale Grenzen erreichen? Mit anderen Worten, kann ich es irgendwie wie den rechten Teil des Diagramms machen?

Ich verstehe, dass es Datenproblem ist, und für diese Lücken gibt es keine Postleitzahl definiert, kann ich sehen, indem Sie das ursprüngliche Shapefile.

Hat jemand versucht, diese Lücken zu überbrücken?

Antwort

0

Zuerst die Lösung. Die Grenzen vor 2010, die keine Lücken aufweisen, sind unter https://www.census.gov/geo/maps-data/data/prev_cartbndry_names.html verfügbar.

Jetzt werde ich Ihnen sagen, was die Lücken bedeuten. Das Problem besteht zumindest teilweise darin, dass ein Teil des US-Landes nicht in einer deklarierten ZCTA ist. Auf der Census-Seite heißt es: "Für die Volkszählung von 2010 haben große Wasserflächen und große unbewohnte Landflächen keine ZCTAs" (Ich kann nicht verlinken, aber Sie werden es bei Google finden). Dies ist besonders in Gebieten mit geringer Bevölkerungszahl schlimm, aber es fehlen sogar Gebiete in der Nähe von Großstädten.

Siehe zum Beispiel diese Exploration in der Gegend von Chicago: https://walkerke.shinyapps.io/tigris-zip-income/. Die fehlenden Bereiche sind eindeutig Dinge wie Naturreservate (wie Midewin National Tallgrass Prarie und was Google vermutet, ist das Braidwood Naturreservat nur im Süden), die definitionsgemäß keine langfristige menschliche Besiedlung haben sollte.

Verwandte Themen