使用因子作为关键字时如何保留原始向量的顺序

时间:2017-02-20 21:15:59

标签: r

我想要一种使用命名向量作为关键字从一个向量快速映射到另一个向量的方法。这很容易完成如下:

    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的顺序。

有一种简单的方法吗?

0 个答案:

没有答案