У меня есть набор строк, которые мне нужно преобразовать в уникальные короткие идентификаторы.Создайте уникальные человекочитаемые идентификаторы (hash?) Для строк в R
Идентификаторы должны быть:
- уникальным; это должно быть очень маловероятно, что разные строки приводят к одинаковым идентификаторам
- automatic; Я не хочу создавать/hardcode ручные идентификаторы (как в: Id212).
- как можно короче; эти идентификаторы должны быть как можно короче, потому что они должны вводиться людьми.
- они не должны быть шестигранными, все буквы и цифры будут работать
- должны быть легко обработаны людьми, но не быть читаемым человеком (они должны не делать какие-либо смысл).
- криптографической защиты, помимо уникальности, не является проблемой
Я думал об этом:
string <- c("this is obviously an amateur")
library(digest)
hash <- digest(object = string, algo = "crc32", serialize = FALSE)
в результате "ac32ed9d".
Мои вопросы:
- я могу сделать эту строку еще короче, используя весь алфавит?
- , похоже, вызывает озабоченность по поводу
crc32
, вызывающего столкновения - будет ли это проблемой, скажем, 500 довольно длинных предложений? - Это, как правило, хороший способ решить проблему?
Достаточно ли сокращения? – hrbrmstr
спасибо за указатель @hrbrmstr! 'abbreviate' не поможет, потому что его аббревиатуры _make sense_ (они не должны, это может отвлекать участников). Кроме того, строки иногда будут меняться тонкими, но релевантными способами, и я боюсь, что 'abbreviate' может привести к тем же аббревиатурам. – maxheld