如何在 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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告