Ich versuche, Geocode einen Datensatz mit dem Google API-Schlüssel umzukehren. Ich schaffte es, den Code auszuführen und die gewünschten Ergebnisse für eine kleine Probe von 10, aber es gibt einen FehlerSubskripte außerhalb der Grenzen für umgekehrte Geokodierungsschleife in R
Error in rgc$results[[1]] : subscript out of bounds
ich mit dem folgenden Code, um die api Schlüssel zur Integration verwaltet:
` revgx <- mapply(function(latlng, api_key){
url= paste("https://maps.googleapis.com/maps/api/geocode/json?","latlng=",latlng,"&key=",sep="")
rgc <- fromJSON(paste(readLines(url), collapse = ''))
rgc <- rgc$results[[1]]
with(rgc,{rgcdf <<- data.frame(
address = formatted_address
)})
for(k in seq_along(rgc$address_components)){
rgcdf <- cbind(rgcdf, rgc$address_components[[k]]$long_name)
}
names(rgcdf) <- c('address', sapply(rgc$address_components, function(l) l$types[1]))
# return 'more' output
rgcdf
},
y1$latlng)`
Ich habe versucht, das gleiche mit der Einbeziehung von XML zu verwenden, aber ohne Erfolg. Bitte geben Sie an, ob Änderungen am Code erforderlich sind.
Vielen Dank @ khmr !! Ich habe den Code ausgeführt und es funktionierte ziemlich genau. Wenn ich jedoch 60 Abfragen durchlasse, gibt es mir eine Liste von 60, mit der ich anfangen soll. Dann verwende ich den Code 'df1 <- rbindlist (df, fill = TRUE)' um diese Liste zu binden. Dies löschte 5 Ergebnisse aus der Liste von 60 und daher konnte ich nicht mit dem ursprünglichen Datensatz "cbind", um eine Datenbank von lat, lng und den Adressfeldern zu erhalten. Ich bekomme den Fehler 'Fehler in dat.frame (..., check.names = FALSE): Argumente implizieren unterschiedliche Anzahl von Zeilen: 60, 55' –
Ich habe valid_latlong hinzugefügt. Jetzt sollten Sie in der Lage sein, cbind zu verwenden. Wenn dies hilft, zu akzeptieren und upvote. – khrm
Danke @ khrm. Die erhaltene Liste kann in folgender Weise gebunden werden: list = rbindlist (lapply (dflist, as.data.table), fill = TRUE) 'und kann mit dem Datenrahmen von lat-lng durch' df1 <- cbind (df (Liste) ' –