将数据框中的一列字符串转换为 R 中的数字(不是通常的那种)

Convert a column of strings in data frame into numeric in R (not the usual kind)

所以在 R 中,我有一列包含类似于以下内容的字符串:

 "Peter","Paul","John","Melissa","Paul","Peter" ...

我想将这些名称转换为数字 ID 格式,如下所示:

  1,2,3,4,2,1

换句话说 - 我想为名称创建一个数字 ID,其中相同的名称具有相同的数值,不同的名称具有不同的数值。最好的方法是什么?

尝试

 match(v1, unique(v1))
#[1] 1 2 3 4 2 1

或者

as.numeric(factor(v1, levels=unique(v1)))
#[1] 1 2 3 4 2 1

数据

v1 <- c('Peter', 'Paul', 'John', 'Melissa', 'Paul', 'Peter')