我想要一种使用命名向量作为关键字从一个向量快速映射到另一个向量的方法。这很容易完成如下:
source_col <- state.abb[1:5]
source_col
AL AK AZ AR CA
map <- state.region[1:5]
names(map) <- state.abb[1:5]
new_col <- map[source_col]
new_col
AL AK AZ AR CA
South West West South West
但是,在我的实际用例中,我有数百万行和更复杂的字符串,因此这种映射非常耗时。当我第一次将源col转换为因子时,映射的发生速度要快得多,但返回的向量是根据因子级别排序的,而不是原始的source_col:
source_col <- as.factor(source_col)
new_col2 <- map[source_col]
new_col2
AK AL AR AZ CA
West South South West West
我希望能够使用与因子匹配的速度,但我希望返回的对象保留原始source_col的顺序。
有一种简单的方法吗?