如何在R中返回字符串中的唯一位数?

时间:2017-10-25 22:29:08

标签: r string stringr

我有一个字符串向量,每个字符串有24位数字。每个数字代表一个小时,如果数字为“0”,则应用来自时间段0的速率,如果数字为1,则应用来自时间段1的速率。

作为一个例子,考虑下面的两个字符串。我想返回每个字符串中的句点数。例如:

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

#str1: 3
#str2: 1

有什么建议吗?我一直在考虑如何在这里使用stringr中的str_count。此外,我搜索了其他帖子,但大多数都专注于计算字符串中的字母,而这是一个小小的修改,因为字符串包含数字而不是字母。

谢谢!

2 个答案:

答案 0 :(得分:3)

这是一个丑陋的解决方案,但这里是

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

答案 1 :(得分:3)

以下是使用charToRaw的另一种选择。

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