- 文本數(shù)據(jù)挖掘:基于R語言
- 黃天元編著
- 711字
- 2021-07-08 12:07:06
3.2 字符串的辨識、計數(shù)與定位
在3.1節(jié)中構造了cn_string這個字符串變量,內容為“上海自來水來自海上,山西煤運車煤運西山”。現(xiàn)在要解決以下3個問題。
●“山”在這個字符串中有沒有出現(xiàn);
●“山”在這個字符串中出現(xiàn)了幾次;
●“山”在這個字符串中什么位置出現(xiàn)了。
下面利用stringr包中的函數(shù)(str_detect/str_count/str_locate)一一解決上述3個問題。
1.字符串是否出現(xiàn)
判別一個字符或者一段字符在該字符串中是否出現(xiàn),可以采用str_detect函數(shù)實現(xiàn)。返回值是一個邏輯性變量,告訴用戶要判別的內容出現(xiàn)了還是沒有出現(xiàn)。TRUE表示出現(xiàn),F(xiàn)ALSE表示沒出現(xiàn),如下所示。

結果顯示,“上海自來水來自海上,山西煤運車煤運西山”中出現(xiàn)了“山”字,沒有出現(xiàn)“山東”這個兩字詞語。
2.字符串出現(xiàn)了幾次
使用str_count函數(shù)可以直接查看某字符或字符串在目標字符串中出現(xiàn)的次數(shù),以下代碼可查看“山”在“上海自來水來自海上,山西煤運車煤運西山”一共出現(xiàn)了幾次。結果顯示,“山”字共出現(xiàn)了兩次。

如果查看的詞在字符串中沒有出現(xiàn),那么就會返回0,如下所示。

如果要查詢整個字符串的長度,則可以使用str_length函數(shù)進行查詢。

3.字符串在何處出現(xiàn)
要知道“山”在“上海自來水來自海上,山西煤運車煤運西山”這個字符串中具體什么位置出現(xiàn),可以使用str_locate函數(shù)。這個函數(shù)會對第一個“山”出現(xiàn)的位置進行定位,如下所示。

以上結果返回了“山”這個字符的起始位置(對于單字來說,起始位置是一樣的)。如果想知道“山西”的位置,則可以這樣操作。

以上結果表示,“山西”這個詞出現(xiàn)在字符串第11到12的位置。事實上“山”在字符串中出現(xiàn)了兩次,如果要對兩個“山”都進行定位,可以使用str_locate_all函數(shù)。

這里有一點需要注意,返回值是一個列表,而列表中所裝的是一個二維數(shù)組。了解返回值的數(shù)據(jù)結構對未來的文本數(shù)據(jù)批處理具有重要意義。
- GitHub Essentials
- 數(shù)據(jù)庫應用實戰(zhàn)
- 企業(yè)數(shù)字化創(chuàng)新引擎:企業(yè)級PaaS平臺HZERO
- PyTorch深度學習實戰(zhàn):從新手小白到數(shù)據(jù)科學家
- 數(shù)據(jù)挖掘原理與實踐
- 從零開始學Hadoop大數(shù)據(jù)分析(視頻教學版)
- Mastering Ninject for Dependency Injection
- Voice Application Development for Android
- WS-BPEL 2.0 Beginner's Guide
- Remote Usability Testing
- 大數(shù)據(jù)架構和算法實現(xiàn)之路:電商系統(tǒng)的技術實戰(zhàn)
- Spring Boot 2.0 Cookbook(Second Edition)
- Rust High Performance
- 大數(shù)據(jù)技術體系詳解:原理、架構與實踐
- Oracle 內核技術揭密