3

我有一个字符串向量(例如国家名称),以及这些字符串到其他字符串的映射(例如国家名称到 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

4

2 回答 2

8

这是一种方式:

with(mapping, iso3[match(countries, country)])
# [1] USA ECU RUS RUS ECU
# Levels: ECU RUS USA

as.character将其作为字符向量包装到结果中。

于 2013-06-14T14:32:36.130 回答
4

或者,正如贾斯汀指出的那样:

factor(countries,levels = mapping$country,labels = mapping$iso3)
[1] USA ECU RUS RUS ECU
Levels: ECU RUS USA
于 2013-06-14T14:34:37.630 回答