cody_stinson
cody_stinson

Reputation: 400

How can I return the unique number of digits in a character string in R?

I have a vector of strings with 24 digits each. Each digit represents an hour, and if the digit is "0" then the rate from period 0 applies and if the digit is 1 then the rate from period 1 applies.

As an example consider the two strings below. I would like to return the number of periods in each string. For example:

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

#str1: 3
#str2: 1

Any recommendations? I've been thinking about how to use str_count from stringr here. Also, I've searched other posts but most of them focus on counting letters in character strings, whereas this is a slight modification because the string contains digits and not letters.

Thanks!

Upvotes: 2

Views: 97

Answers (2)

www
www

Reputation: 39154

Here is another option by using charToRaw.

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

Upvotes: 3

shuckle
shuckle

Reputation: 221

This is an ugly solution, but here goes

length(unique(unlist(strsplit(str1,split = ""))))

Upvotes: 3

Related Questions