Estrai la divisione subnazionale dalla stringa e convertila nel nome del paese in R

Aug 22 2020

Ho una serie di stringhe contenenti solo nomi di provincia / divisioni subnazionali che voglio convertire in un vettore di nomi di paesi in R. È relativamente facile estrarre i nomi di paesi usando il countrycodepacchetto, ma non vedo un modo per convertire i nomi di provincia paesi che utilizzano quel pacchetto.

Per esempio:

provinces <- c("The governor of Florida", "The Premier of Ontario", "Jalisco has a province-wide policy")

Spero in un metodo che converta il provincesvettore in un vettore che assomiglia a qualcosa c("United States of America", "Canada", "Mexico").

Risposte

2 firebird17139 Aug 22 2020 at 10:00

Dal commento sopra, mi sono reso conto che potresti usare un dizionario personalizzato in countrycode, che ti consente di incorporare dati subnazionali.

MODIFICARE:

Ecco un esempio completamente riproducibile poiché l'ultimo non ha funzionato completamente:

require(countrycode)
require(choroplethrAdmin1)

# example data
provinces <- c("The governor of Florida", "Tim Stevenson leads Oxfordshire", "Gobierno del Estado de Hidalgo")

# remove punctuation
provinces <- gsub("[[:punct:]\n]", "", provinces)

# load administrative division dictionary
data(admin1.regions)

# remove duplicate region names (countrycode function only accepts unique names)
admin1.regions <- admin1.regions[!duplicated(admin1.regions$region),]

# convert provinces to country
provinces_to_country <- countrycode(provinces, "region", "country", custom_dict = admin1.regions, origin_regex = TRUE) 

VECCHIO ESEMPIO NON RIPRODUCIBILE:

require(countrycode)
require(choroplethrAdmin1)

# example data
provinces <- c("The governor of Florida", "The Premier of Ontario", "Jalisco has a province-wide policy")

# remove punctuation
provinces <- gsub("[[:punct:]\n]", "", provinces)

# load administrative division dictionary
data(admin1.regions)

# remove duplicate region names (countrycode function only accepts unique names)
admin1.regions <- admin1.regions[!duplicated(admin1.regions$region),]

# convert provinces to country
provinces_to_country <- countrycode(provinces, "region", "country", custom_dict = admin1.regions, origin_regex = TRUE)