R 用翻译员将国家名称从西班牙语翻译成英语

R 用翻译员将国家名称从西班牙语翻译成英语,r,country-codes,R,Country Codes,我有一个国家名称和出口的数据集,但国家名称是西班牙语的。我想使用countrycode来获得正确的代码来映射它,但是countrycode只能从英语/德语转换为其他语言(而不是相反)。我尝试使用translateR将西班牙语名称更改为英语,但新列输出的内容与原始列完全相同 我不认为这是我的API,因为我最初得到了一个不同的错误,但后来我重新启动了R,它就消失了。代码里有什么东西吗 #read in file data <- read.csv("...", header = TRUE) da

我有一个国家名称和出口的数据集,但国家名称是西班牙语的。我想使用
countrycode
来获得正确的代码来映射它,但是
countrycode
只能从英语/德语转换为其他语言(而不是相反)。我尝试使用
translateR
将西班牙语名称更改为英语,但新列输出的内容与原始列完全相同

我不认为这是我的API,因为我最初得到了一个不同的错误,但后来我重新启动了R,它就消失了。代码里有什么东西吗

#read in file
data <- read.csv("...", header = TRUE)
data$char <- as.character(data$pais_descripcion)

#translate
library(translateR)

google.dataset.out <- translate(dataset = data,
content.field = 'char',
google.api.key = 'key',
source.lang = 'es',
target.lang = 'en')
#读入文件

数据
countrycode
内置了西班牙国家名称,但默认情况下无法作为源代码访问。您可以通过创建和使用自定义词典来解决这个问题,如下例所示。缺点是它与regex不匹配,因此名称必须完全匹配(包括区分大小写)。如果您能够并且愿意为西班牙国家名称创建一组正则表达式,我们将非常高兴并感谢您将它们作为默认的可访问源代码集成到
countrycode
(此处可以提交)

库(国家代码)
习惯用语
library(countrycode)

custom_dict <- data.frame(spanish = countrycode::codelist$cldr.name.es,
                          english = countrycode::codelist$cldr.name.en,
                          stringsAsFactors = FALSE)

countries <- c("España", "Alemania")

countrycode(countries, "spanish", "english", custom_dict = custom_dict)
# [1] "Spain"   "Germany"
library(countrycode)

url <- "https://catalogo.datos.gba.gob.ar/dataset/46b85203-17fe-42bd-b13f-1d3e150c06cd/resource/3eb20f55-7dc0-4671-a039-cf2e4b71c3db/download/expo_2016_2017.xlsx-expo.csv"
data <- read.csv(url, stringsAsFactors = FALSE)

custom_dict <- data.frame(spanish = countrycode::codelist$cldr.name.es,
                          english = countrycode::codelist$cldr.name.en,
                          stringsAsFactors = FALSE)

results <- countrycode(data$pais_descripcion, "spanish", "english", custom_dict = custom_dict)

sum(is.na(results))
# [1] 3902

sum(!is.na(results))
# [1] 45060