如何用数字值替换字符串?

例如,假设我有一个像这样的向量,

n <- c(rep("Sam", 3), "Harry", rep("Sparky", 2), rep("Ted", 4), "Red")

>n
 [1] "Sam"    "Sam"    "Sam"    "Harry"  "Sparky" "Sparky" "Ted"    "Ted"    "Ted"
[10] "Ted"    "Red"


我想得到这样的输出,

 [1] 1 1 1 2 3 3 4 4 4 4 5


哪里


Sam1索引
Harry2索引
Sparky通过3
Ted通过4
Red by 5

最佳答案

这是使用factor方法保留期望顺序的解决方案:

n <- factor(n, levels = unique(n))
> as.numeric(n)
 [1] 1 1 1 2 3 3 4 4 4 4 5

07-26 09:28