Как я могу вернуть уникальное количество цифр в символьной строке в R?

У меня есть вектор строк с 24 цифрами в каждой. Каждая цифра представляет час, и если цифра равна "0", то применяется ставка с периода 0, а если цифра равна 1, то применяется ставка с периода 1.

В качестве примера рассмотрим две строки ниже. Я хотел бы вернуть количество периодов в каждой строке. Например:

str1 <- "000000000000001122221100"
str2 <- "000000000000000000000000"

#str1: 3
#str2: 1

Любые рекомендации? Я думал о том, как использовать str_count из stringr здесь. Кроме того, я искал другие сообщения, но большинство из них сосредоточено на подсчете букв в символьных строках, тогда как это небольшое изменение, потому что строка содержит цифры, а не буквы.

Спасибо!

2 ответа

Решение

Вот еще один вариант с помощью charToRaw,

length(unique(charToRaw(str1)))
[1] 3
length(unique(charToRaw(str2)))
[1] 1

Это уродливое решение, но здесь идет

length(unique(unlist(strsplit(str1,split = ""))))
Другие вопросы по тегам