r - 如何将字符串列表转换为唯一的单个字符?
问题描述
我有一个变量,它是按顺序排列的不同鸟叫的列表。我想给每个不同的电话一个独特的、单一的角色。我找到了一种方法来给他们唯一的数字,但是一旦我达到 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 函数来执行此操作。有没有办法将每个字符串转换为唯一字符?
解决方案
我们可以使用数字 0-9 的大小写字母,它们的大小为 62。
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
您实际上并不需要sample
在这里添加它以引入随机性。
您可以将调用序列编写为
paste0(df$unique, collapse = "")
#[1] "EYcXonYP"
推荐阅读
- jmeter - JMeter 类 javax.faces.el.EvaluationException<
- python-3.x - 设置 Pyenv 的路径
- angular - 如何在 Angular 8 中延迟加载子组件?
- swift - 无法识别的选择器发送到实例 0x7ff0ece07a40" xcode 上的错误
- pip - 如何在 ubuntu 中设置 pip3 安装路径
- sql - 计算不同列中相同值的数量
- php - 使用 discord php 动态获取用户对象
- python - ImportError:无法从“六”导入名称“ensure_str”
- angular - 将变量传递给firestore where查询(Angular)
- javascript - 如何为函数创建方法?