如何在 R 中检查字符串是否只包含一种字符?


如果一个字符串包含多个字符,那么所有字符可能相同也可能不同。如果我们想要检查一个字符串是否只包含一种字符,那么可以使用 stringi 包的 stri_count_fixed 函数和 nchar 函数。

查看下面给出的示例,了解如何实现。

示例 1

以下代码片段创建了一个示例数据框 -

Countries<-sample(c("India","USA","UK","SSS"),20,replace=TRUE)
df1<-data.frame(Countries)
df1

创建了以下数据框 -

  Countries
1  USA
2  India
3  India
4  SSS
5  USA
6  USA
7  USA
8  USA
9  India
10 SSS
11 SSS
12 India
13 SSS
14 USA
15 India
16 USA
17 SSS
18 USA
19 SSS
20 USA

要加载 stringi 包并检查 Countries 中每个元素的所有字符是否都为一种类型,请将以下代码添加到上述代码片段中 -

library(stringi)
df1$All_S<-stri_count_fixed(df1$Countries,"S")==nchar(df1$Countries)
df1

输出

如果您将以上所有代码片段作为单个程序执行,它将生成以下输出:-

  Countries All_S
1  USA      FALSE
2  India    FALSE
3  India    FALSE
4  SSS      TRUE
5  USA      FALSE
6  USA      FALSE
7  USA      FALSE
8  USA      FALSE
9  India    FALSE
10 SSS      TRUE
11 SSS      TRUE
12 India    FALSE
13 SSS      TRUE
14 USA      FALSE
15 India    FALSE
16 USA      FALSE
17 SSS      TRUE
18 USA      FALSE
19 SSS      TRUE
20 USA      FALSE

示例 2

以下代码片段创建了一个示例数据框 -

Group<-sample(c("Control","Mixed","Common","XX"),20,replace=TRUE)
df2<-data.frame(Group)
df2

创建了以下数据框 -

   Group
1  Mixed
2  XX
3  XX
4  Control
5  Mixed
6  Common
7  Common
8  Mixed
9  Mixed
10 XX
11 Mixed
12 Common
13 Common
14 XX
15 Mixed
16 Control
17 Mixed
18 Common
19 Control
20 Control

要检查 Group 中每个元素的所有字符是否都为一种类型,请将以下代码添加到上述代码片段中 -

df2$All_X<-stri_count_fixed(df2$Group,"X")==nchar(df2$Group)
df2

输出

如果您将以上所有代码片段作为单个程序执行,它将生成以下输出:-

   Group    All_X
1  Mixed    FALSE
2  XX       TRUE
3  XX       TRUE
4  Control  FALSE
5  Mixed    FALSE
6  Common   FALSE
7  Common   FALSE
8  Mixed    FALSE
9  Mixed    FALSE
10 XX       TRUE
11 Mixed    FALSE
12 Common   FALSE
13 Common   FALSE
14 XX       TRUE
15 Mixed    FALSE
16 Control  FALSE
17 Mixed    FALSE
18 Common   FALSE
19 Control  FALSE
20 Control  FALSE

更新于: 2021年11月10日

379 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告