2016-04-18 8 views
0

Angesichts einer Reihe von Städtenamen, wie würde man den Landkreis finden, dem jede Stadt mit R gehört? Ich habe mir die map und acs Pakete angesehen, aber ich bin nicht mit ihnen erfahren. Ziel ist es, Daten auf Kreisebene zu erstellen, die mit den Städten in meinen Daten verknüpft sind.Wie finden Sie den Landkreis für jede Stadt in einem Vektor von Städtenamen mit R?

Angenommen, Sie haben die folgenden:..

city <- c("RALEIGH", "HOLLYWOOD", "DALLAS", "MOUNTAIN VIEW", "OKLAHOMA CITY", "ORLANDO") 
state <- c("NC", "CA", "TX", "CA", "OK", "FL") 
+0

Sie überprüfen könnten, 'Bibliothek (Länderkennung)' Bitte beachten Sie reproduzierbares Beispiel zu liefern. – akrun

+0

@akrun aktualisiert mit reproduzierbarem Beispiel – user2205916

+0

Was Sie angegeben haben, ist noch kein reproduzierbares Beispiel. Die Frage ähnelt eher einer Werkzeuganforderung. Ein reproduzierbares Beispiel wäre etwas in der Art von "Ich habe diese Methode ausprobiert, aber produziert weiterhin diesen Fehler. Wie kann ich dieses Problem lösen oder ist es konzeptionell falsch und ich muss etwas anderes untersuchen". –

Antwort

1

„Sie können Stadt/Statusinformationen in Tab-separierte Format von GeoNames.org Die Daten sind frei, umfassend und gut strukturiert erhalten Für US-Daten, Nimm die Datei US.txt auf der Datenseite für kostenlose Postleitzahlen. Die Datei readme.txt auf dieser Seite beschreibt das Format. " See post by Joshua Frank

## Download the file 

temp <- tempfile() 
download.file("http://download.geonames.org/export/zip/US.zip",temp) 
con <- unz(temp, "US.txt") 
US <- read.delim(con, header=FALSE) 
unlink(temp) 

## Find state and county 

colnames(US)[c(3,5,6)] <- c("city","state","county") 
US$city <- tolower(US$city) 
myCityNames <- tolower(c("RALEIGH", "HOLLYWOOD", "DALLAS", "MOUNTAIN VIEW","OKLAHOMA CITY", "ORLANDO")) 
myCities <- US[US$city %in% myCityNames, ] 
myCities <- myCities[c("city","state","county")] 
myCities <- myCities[!duplicated(myCities),] 
myCities <- myCities[order(myCities$city, myCities$state, decreasing = TRUE), ] 

Das Problem ist, dass es mehr Städte mit dem gleichen Namen in verschiedenen Staaten.

Wenn man sich genau für die Städte in den Staaten erwähnte man dies helfen kann:

myPlaces <- data.frame(city = myCityNames, state = c("NC", "CA", "TX", "CA", "OK", "FL")) 
merge(myCities, myPlaces, by = c("city", "state") ,all.y=TRUE) 
+0

das klingt vielversprechend. Ich werde es heute Abend überprüfen – user2205916

+0

Hat es geholfen? Vielleicht möchten Sie das dann akzeptieren. – Roccer

Verwandte Themen