R 如何将字符串列表转换为唯一的单个字符?

R 如何将字符串列表转换为唯一的单个字符?,r,R,我有一个变量,它是一系列不同的鸟叫声。我想给每个不同的电话一个独特的,单一的字符。我已经找到了一种给他们唯一数字的方法,但一旦我达到10,那就不行了,因为我需要把这个列表变成一个字母和/或数字串 例如,我的一些数据帧如下所示: > d1 Order Type 1 1 Bowerbird a 2 2 Catbird 3 3 Robin 4 4 Scrubwren 5 5 Bowerbird b 6 6

我有一个变量,它是一系列不同的鸟叫声。我想给每个不同的电话一个独特的,单一的字符。我已经找到了一种给他们唯一数字的方法,但一旦我达到10,那就不行了,因为我需要把这个列表变成一个字母和/或数字串

例如,我的一些数据帧如下所示:

> d1
  Order        Type
1     1 Bowerbird a
2     2     Catbird
3     3       Robin
4     4   Scrubwren
5     5 Bowerbird b
6     6  Kookaburra
7     7     Catbird
8     8     Rosella
我想将每个独特的调用转换为不同的字符。它可以是小写字母、大写字母或数字,只要它们都是单位数。例如:

> d1
  Order        Type Unique
1     1 Bowerbird a      a
2     2     Catbird      b
3     3       Robin      c
4     4   Scrubwren      1
5     5 Bowerbird b      2
6     6  Kookaburra      A
7     7     Catbird      b
8     8     Rosella      B
然后,可以将该调用序列写入“abc12AbB”


我有大约40个不同的可能调用,所以如果可以避免的话,我不想使用ifelse函数。有没有办法将每个字符串转换为唯一的字符?

我们可以使用大小为62的数字0-9的大写字母和小写字母

set.seed(123)
df$unique <- sample(c(letters, LETTERS, 0:9))[factor(df$Type)]

df
#  Order       Type unique
#1     1 Bowerbirda      E
#2     2    Catbird      Y
#3     3      Robin      c
#4     4  Scrubwren      X
#5     5 Bowerbirdb      o
#6     6 Kookaburra      n
#7     7    Catbird      Y
#8     8    Rosella      P
paste0(df$unique, collapse = "")
#[1] "EYcXonYP"