以有效(矢量化)方式用整数替换R中的列中的字符串(值)

时间:2019-01-17 20:52:51

标签: r dataframe replace vectorization

我的数据框很大,我想用整数替换一列中的值,这些值是字符串。此列中有超过一千个唯一字符串。一种方法是通过for循环。这是带有玩具数据集的代码:

data(mtcars)
library(stringr)
mtcars$gear = as.character(mtcars$gear)
unique_values = unique(mtcars$gear)

for (i in (1:length(unique_values))){

   mtcars$gear =  str_replace(string = mtcars$gear, pattern = unique_values[i], replacement = as.character(i))

}

有没有更有效的方法?

1 个答案:

答案 0 :(得分:0)

使用dplyr库应该可以解决问题:

data(mtcars)
library(stringr)
library(dplyr)


mtcars$gear = as.character(mtcars$gear)

mutate(mtcars, gear = as.integer(gear))