2017-10-25 9 views
2

私はそれぞれ24桁の文字列のベクトルを持っています。各桁は1時間を表し、桁が「0」の場合は期間0のレートが適用され、桁が1の場合は期間1のレートが適用されます。Rの文字列の一意の桁数を返すにはどうすればよいですか?

例として、以下の2つの文字列を考えます。私は各文字列のピリオドの数を返すしたいと思います。例:

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

#str1: 3 
#str2: 1 

推奨事項を教えてください。私はここでstringrからstr_countを使う方法について考えてきました。また、私は他の投稿を検索しましたが、文字列の文字を数えることに焦点を当てていますが、文字列には文字ではなく数字が含まれているため、これはわずかな変更です。

ありがとうございます!

答えて

3

を行くcharToRawを使用して、別のオプションです。

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

これは醜いソリューションですが、ここではここ

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

驚くばかりです。はい、私は少し類似したものを考え出しましたが、もっと優雅なものがなければならないと考えていました。他に何も出現しなければ、これで確実に作業することができます。 –

+1

あなたは 'length(table(strsplit(str1、" "))'を使ってそれを少し短くすることができます – eipi10

関連する問題