我有一个字符串列表,如下所示:
"kkv", "ll27", "g998", "g98", "kv"
我想为每个具有相同字符的字符串分配唯一的ID,无论其长度如何。例如," kkv"和" kv"和" g998"和" g98"将具有相同的ID。
编辑:对不起,我应该说完全相同的独特字符。所以" kkv"和" kv"将具有相同的ID,但" kv"和" kv1"不会。这是一个表格,其输出我喜欢:
"kkv" 1
"ll27" 2
"g998" 3
"g98" 3
"kv" 1
答案 0 :(得分:1)
包含原始字符串中每个字母之一的排序字符串形成这样的标识符:
y <- c('vkk', 'kkv', 'll27', 'g998', 'g98', 'kv')
sapply(strsplit(y, ''), function(x) paste(sort(unique(x)), collapse=''))
## [1] "kv" "kv" "27l" "89g" "89g" "kv"
要将这些转换为数字,您可以使用因子:
z <- sapply(strsplit(y, ''), function(x) paste(sort(unique(x)), collapse=''))
as.numeric(factor(z))
## [1] 3 3 1 2 2 3