从 R 中的位置字符串中查找城市、州和国家/地区信息

Find city, state and country information from a location string in R

我有一个带有位置信息的字符串向量。这是我的字符串的一部分

location_information = c("Hartville, Ohio","Malaysia,Johor Bahru","Culpeper, irginia",
                          "MD", "Atlanta","Granada Hills CA","Kansas City, mo")

我想通过这个字符串向量获取城市、州和国家/地区的信息。这是示例所需的输出。

desired_out = data.frame(  Country = c("US","Malaysia",rep("US",5)),
  State = c("Ohio",NA,"Virginia","Maryland","Georgia","California","Missouri"),
  City = c("Hartville","Johor Bahru","Culpeper",NA, "Atlanta","Granada Hills","Kansas City"))

如何获得具有一致字符串格式的信息?

我想我可能需要使用 Google API 之类的东西。我怎样才能在 R 中做到这一点?

这是一个使用来自 openstreetmap 的地理编码来获取所需附加信息的解决方案。

请注意,您(可能)无法一次性解析 hunderds/thousands 个位置。

library(tmap)
library(tmaptools)
library(dplyr)
# sample data of locations
location_information = c("Hartville, Ohio","Malaysia,Johor Bahru","Culpeper, Virginia",
                         "MD", "Atlanta","Granada Hills CA","Kansas City, mo")
# geocode the locations
loc.data <- tmaptools::geocode_OSM(location_information, as.sf = TRUE)
# reverse geocode the locations for additional OSM data
tmaptools::rev_geocode_OSM(loc.data) %>%
  dplyr::select(country, state, city, town, village, city_district)
#         country      state        city     town   village city_district
# 1 United States       Ohio        <NA>     <NA> Hartville          <NA>
# 2      Malaysia      Johor Johor Bahru     <NA>      <NA>          <NA>
# 3 United States   Virginia        <NA> Culpeper      <NA>          <NA>
# 4 United States   Maryland        <NA>     <NA>      <NA>          <NA>
# 5 United States    Georgia     Atlanta     <NA>      <NA>          <NA>
# 6 United States California Los Angeles     <NA>      <NA> Granada Hills
# 7 United States   Missouri Kansas City     <NA>      <NA>          <NA>