官术网_书友最值得收藏!

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ù)批處理具有重要意義。

主站蜘蛛池模板: 六盘水市| 永康市| 扎鲁特旗| 华容县| 凌海市| 萨嘎县| 嘉兴市| 沙洋县| 巴林右旗| 九龙城区| 仁化县| 行唐县| 宿州市| 姚安县| 扎赉特旗| 铁力市| 临武县| 台北县| 固阳县| 湘阴县| 全州县| 鸡泽县| 凌海市| 龙州县| 商河县| 鄂州市| 宜都市| 凌云县| 铜梁县| 布拖县| 嵩明县| 烟台市| 松原市| 新营市| 冕宁县| 松江区| 民丰县| 保山市| 延边| 叙永县| 哈尔滨市|