理想情况下,您必须尝试找出是否有一些包可以让您在谷歌地图上搜索。
如果没有,我将从拆分数据开始,将国家名称与国家代码包匹配,然后从那里移动。
library("countrycode")
library("data.table")
d <- data.table(raw = c("Groningen", "Netherlands, Groningen", "Netherlands", "Jerusalem, Israel",
"Nesher, Israel", "Western, United States", "U.S.", "United States","Sacramento, California, USA"))
d <- cbind(
d,
d[, tstrsplit(raw, ",", fixed=TRUE) ]
)
d[, country := countrycode( V1, "country.name", "country.name")]
d[!is.na(country), city := V2]
d[is.na(country), city := V1]
d[is.na(country), country := countrycode( V2, "country.name", "country.name")]
raw V1 V2 V3 country city
1: Groningen Groningen <NA> <NA> <NA> Groningen
2: Netherlands, Groningen Netherlands Groningen <NA> Netherlands Groningen
3: Netherlands Netherlands <NA> <NA> Netherlands <NA>
4: Jerusalem, Israel Jerusalem Israel <NA> Israel Jerusalem
5: Nesher, Israel Nesher Israel <NA> Israel Nesher
6: Western, United States Western United States <NA> United States Western
7: U.S. U.S. <NA> <NA> United States <NA>
8: United States United States <NA> <NA> United States <NA>
9: Sacramento, California, USA Sacramento California USA <NA> Sacramento