我有一个n x 1地址列表(其类为'character'),我想输出每个地址的地理编码为n x 2 data.frame
(lat和long)。你怎么用R写这个,有没有一种有效的方法呢?如果你能展示一些例子,那将会很棒。
现在,我正在运行这样的for循环:
library(taRifx.geo) ## for geocode
hmm <- c()
for (i in (R2012)){
hmm <- c(hmm, geocode(i, output = c("latlon", "latlona", "more", "all")))
}
但结果是lat和lon的交替单列:
$lon
[1] -122.1034
$lat
[1] 47.55304
$lon
[1] -122.1034
$lat
[1] 47.55304
答案 0 :(得分:1)
如果您强制使用for
循环,则可以执行以下操作。
library(tidyr)
R2012 <- c("Tokyo", "Paris")
lonlat <- list()
for(i in R2012){
lonlat[[i]] <- geocode(i, output = c("latlon", "latlona", "more", "all"))
}
unnest(lonlat, city)
# city lon lat
#1 Tokyo 139.691706 35.68949
#2 Paris 2.352222 48.85661
但是,我认为这里不需要循环。你可能想尝试这样的事情。
foo <- geocode(R2012, output = c("latlon", "latlona", "more", "all"))
foo$city <- R2012
# lon lat city
#1 139.691706 35.68949 Tokyo
#2 2.352222 48.85661 Paris