EDIT: J'ai réalisé la source de mon problème. Je n'ai que des informations de compte pour les comtés pour lesquels j'ai des données, ce qui est inférieur au nombre de comtés dans la zone contre laquelle je fais des complots.Problème de mappage de Choropleth dans R
Il va de soi que les lignes de problèmes de code sont ici:
mapnames <- map("county",plot=FALSE)[4]$names
colorsmatched <- d$colorBuckets [na.omit(match(mapnames ,d$stcon))]
Quelqu'un at-il des conseils sur la façon de générer un vecteur de la longueur appropriée qui est égal au nombre de comtés à New York, New Jersey, CT, et PA de la bibliothèque de cartes? Je veux fusionner les données de comptage que j'ai et inclure des zéros pour les comtés sur lesquels je n'ai pas d'informations.
Je suis en train de suivre le tutoriel décrit ici: http://www.thisisthegreenroom.com/2009/choropleths-in-r/
Le code ci-dessous exécute, mais il est soit ne correspond pas à mon jeu de données avec les données de maps_counties correctement, ou si elle ne comploter dans l'ordre que je voudrais attendre. Par exemple, les zones résultantes pour la grande région de New York ne montrent aucune densité tandis que les comtés aléatoires dans PA montrent la densité la plus élevée.
Le format général de ma table de données est:
county state count
fairfield connecticut 17
hartford connecticut 6
litchfield connecticut 3
new haven connecticut 12
...
...
westchester new york 70
yates new york 1
luzerne pennsylvania 1
Notez ces données est en ordre par l'état et le comté et comprend des données pour CT, NJ, NY, & PA.
Tout d'abord, je lis dans mon ensemble de données:
library(maps)
library(RColorBrewer)
d <- read.table("gissum.txt", sep="\t", header=TRUE)
#Concatenate state and county info to match maps library
d$stcon <- paste(d$state, d$county, sep=",")
#Color bins
colors = brewer.pal(5, "PuBu")
d$colorBuckets <- as.factor(as.numeric(cut(d$count,c(0,10,20,30,40,50,300))))
Voici mon assortit
mapnames <- map("county",plot=FALSE)[4]$names
colorsmatched <- d$colorBuckets [na.omit(match(mapnames ,d$stcon))]
Traçage:
map("county"
,c("new york","new jersey", "connecticut", "pennsylvania")
,col = colors[d$colorBuckets[na.omit(match(mapnames ,d$stcon))]]
,fill = TRUE
,resolution = 0
,lty = 0
,lwd= 0.5
)
map("state"
,c("new york","new jersey", "connecticut", "pennsylvania")
,col = "black"
,fill=FALSE
,add=TRUE
,lty=1
,lwd=2
)
map("county"
,c("new york","new jersey", "connecticut", "pennsylvania")
,col = "black"
,fill=FALSE
,add=TRUE
, lty=1
, lwd=.5
)
title(main="Respondent Home ZIP Codes by County")
Je suis sûr que je manque quelque chose re de base: l'ordre dans lequel la fonction des cartes trace les éléments - mais je n'arrive pas à le comprendre. Merci pour l'aide. S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations.
C'était exactement ce dont j'avais besoin. Merci pour la réponse réfléchie! – Chase