如何在R语言中查找字符串向量中唯一字符和重复字符出现的次数?


为了查找字符串向量中唯一字符出现的次数,我们可以结合使用`table`函数、`rle`函数和`strsplit`函数。例如,如果我们有一个包含一些唯一值和重复值的字符串向量x,可以使用以下命令创建它:

table(rle(strsplit(x,"")[[1]]))

示例1

在线演示

> x1<-c("ABDAJFSDAVCJDDAJFKDSAFKDSJKCJCCJCJDKD")
> x1

输出

[1] "ABDAJFSDAVCJDDAJFKDSAFKDSJKCJCCJCJDKD"

示例

> table(rle(strsplit(x1,"")[[1]]))

输出

values
lengths A B C D F J K S V
1 5 1 3 6 3 7 4 3 1
2 0 0 1 1 0 0 0 0 0

这意味着长度为1的A出现了5次,长度为2的A出现了0次,以此类推。

示例2

在线演示

> x2<-c("AAABDDDDDNDNDND")
> table(rle(strsplit(x2,"")[[1]]))

输出

values
lengths A B D N
1 0 1 3 3
3 1 0 0 0
5 0 0 1 0

示例3

在线演示

> x3<-c("ABDAJFSDAVCJDDAJFKDSAFKDSJKCJCCJCJDKDDJDAJADJKFDSJFDADDKLOLIIYTYRYWALEODODADFNVLKVADKSFDFOPGDOSPAFSDGANJSDEWAYEKALDLAFPPOIIUYQTQRWTWJEMCNBZBCVDGDKALAQPORUWY")
> x3

输出

[1] "ABDAJFSDAVCJDDAJFKDSAFKDSJKCJCCJCJDKDDJDAJADJKFDSJFDADDKLOLIIYTYRYWALEODODADFNVLKVADKSFDFOPGDOSPAFSDGANJSDEWAYEKALDLAFPPOIIUYQTQRWTWJEMCNBZBCVDGDKALAQPORUWY"

示例

> table(rle(strsplit(x3,"")[[1]]))

输出

values
lengths A B C D E F G I J K L M N O P Q R S T U V W Y Z
1 18 3 5 20 4 10 3 0 13 10 7 1 3 7 3 3 3 8 3 2 4 5 6 1
2 0 0 1 3 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

示例4

在线演示

> x4<-c("oijgfhdkadkdslldsldslnvfdflllldllyrhhwjwjenddkdkdkdjjckkfkfjghjfkdkdaadjjjdkdkakdncnjdjggjdhjeanmwueueuehhdjskskdkd")
> x4

输出

[1] "oijgfhdkadkdslldsldslnvfdflllldllyrhhwjwjenddkdkdkdjjckkfkfjghjfkdkdaadjjjdkdkakdncnjdjggjdhjeanmwueueuehhdjskskdkd"

示例

> table(rle(strsplit(x4,"")[[1]]))

输出

values
lengths a c d e f g h i j k l m n o r s u v w y
1 3 2 21 5 6 2 3 1 10 14 2 1 5 1 1 5 3 1 3 1
2 1 0 1 0 0 1 2 0 1 1 2 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

示例5

在线演示

> x5<-c("dajdsallkdafkdsfjdfsjdaskdskldsahdhdhdhdddddyrrteyeussldlddkcjchccccccchdsfjdsjjeuedhjdkaldldl")
> x5

输出

[1] "dajdsallkdafkdsfjdfsjdaskdskldsahdhdhdhdddddyrrteyeussldlddkcjchccccccchdsfjdsjjeuedhjdkaldldl"

示例

> table(rle(strsplit(x5,"")[[1]]))

输出

values
lengths a c d e f h j k l r s t u y
1 6 2 18 4 4 7 6 6 6 0 8 1 2 2
2 0 0 1 0 0 0 1 0 1 1 1 0 0 0
5 0 0 1 0 0 0 0 0 0 0 0 0 0 0
7 0 1 0 0 0 0 0 0 0 0 0 0 0 0

示例6

在线演示

> x6<-c("hryrhhdjdakadldldlaldaldldlldddddlkdfjdjjdkdkeepaotirueuwkslsdesssldldkeie")
> x6

输出

[1] "hryrhhdjdakadldldlaldaldldlldddddlkdfjdjjdkdkeepaotirueuwkslsdesssldldkeie"

示例

> table(rle(strsplit(x6,"")[[1]]))

输出

values
lengths a d e f h i j k l o p r s t u w y
1 5 15 4 1 1 2 2 6 10 1 1 3 2 1 2 1 1
2 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

示例7

在线演示

> x7<-c("qqooqooeoeorrppppptptoorororofflglgllhjjjjhkglllflllfsoososananbbbvccbbcbcbbcmmmawwwbbbzzzswwqqllooipp")
> x7

输出

[1] "qqooqooeoeorrppppptptoorororofflglgllhjjjjhkglllflllfsoososananbbbvccbbcbcbbcmmmawwwbbbzzzswwqqllooipp"

示例

> table(rle(strsplit(x7,"")[[1]]))

输出

values
lengths a b c e f g h i j k l m n o p q r s t v w z
1 3 1 3 2 2 3 2 1 0 1 2 0 2 6 1 1 3 4 2 1 0 0
2 0 2 1 0 1 0 0 0 0 0 2 0 0 5 1 2 1 0 0 0 1 0
3 0 2 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 1 1
4 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

示例8

在线演示

> x8<-c("EHEJAIDKDLLDLFAYWYWIWOLWLLLSLSLLSLSLSLSSLSPPPOOUTUJWWNNNSSNNANNDMQQLLLJJEPEPEPPPRPRPSPSPS")
> x8

输出

[1] "EHEJAIDKDLLDLFAYWYWIWOLWLLLSLSLLSLSLSLSSLSPPPOOUTUJWWNNNSSNNANNDMQQLLLJJEPEPEPPPRPRPSPSPS"

示例

> table(rle(strsplit(x8,"")[[1]]))

输出

values
lengths A D E F H I J K L M N O P Q R S T U W Y
1 3 4 5 1 1 2 2 1 7 1 0 1 6 0 2 9 1 2 4 2
2 0 0 0 0 0 0 1 0 2 0 2 1 0 1 0 2 0 0 1 0
3 0 0 0 0 0 0 0 0 2 0 1 0 2 0 0 0 0 0 0 0

更新于:2021年1月5日

500 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.