【发布时间】:2020-09-14 08:05:40
【问题描述】:
我有一个由n 字母组成的字符串向量,例如"ABCDEF"
我需要将其映射到某个唯一编号。当然,直观的做法是提取所有单个字母letter,然后通过一个一一匹配到对应的数字
match(letter,LETTERS)
但这会导致大号n 的数字太大,因为每个字母都需要 2 位数字(从 01 到 26)。
我现在的想法是将字符串的每个组合与1和26^n之间的唯一数字相匹配,利用26^n的数字少于2n这一事实大n。
例如对于n=4,我们得到"AAAA" -> 1 和"ZZZZ" -> 26^4
如何在 R 中做到这一点?
【问题讨论】:
-
向量中的字符串也是唯一的吗?
-
是的,但是当新数据进来时它应该可以工作,所以排序不会做
-
已经有这个功能了,试试:
charToRaw("ABCDEF") -
@zx8754 但这并不能保存数字,我仍然需要每个字母两个
-
也许不清楚,但我的意思是:
26^n的 digits 比2n大n
标签: r