【发布时间】:2019-01-17 20:52:50
【问题描述】:
我有一个大数据框,我想用整数替换字符串中的值。此列中有超过一千个唯一字符串。一种方法是通过 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))
}
有没有更有效的方法?
【问题讨论】:
-
您需要
match(mtcars$gear, unique(mtcars$gear))吗? -
as.integer(factor(mtcars$gear))?您可以使用labels内因子以您想要的方式更改它 -
使用唯一值作为级别和整数作为标签的转换为因子的解决方案被证明非常有效、快速和优雅。谢谢。
标签: r dataframe replace vectorization