我有一个字符串向量(例如国家/地区名称),以及这些字符串到其他字符串的映射(例如,国家/地区名称到ISO代码的映射)。
countries = c('United States', 'Ecuador', 'Russia', 'Russia', 'Ecuador')
mapping = data.frame(country = c('Ecuador', 'Russia', 'United States'),
iso3 = c('ECU', 'RUS', 'USA'))
如何根据countries
用相应的ISO代码替换mapping
中所有国家/地区名称的出现?
答案 0 :(得分:8)
这是一种方式:
with(mapping, iso3[match(countries, country)])
# [1] USA ECU RUS RUS ECU
# Levels: ECU RUS USA
将as.character
中的此内容作为字符向量包装到结果中。
答案 1 :(得分:4)
或者,正如贾斯汀指出的那样:
factor(countries,levels = mapping$country,labels = mapping$iso3)
[1] USA ECU RUS RUS ECU
Levels: ECU RUS USA