R語(yǔ)言使用Stringr與正則表達(dá)式進(jìn)行字符串處理代碼示例
前言
字符串處理是數(shù)據(jù)清洗與分析中必不可少的一環(huán)。R語(yǔ)言中的stringr包提供了強(qiáng)大且易用的字符串處理函數(shù),而正則表達(dá)式則使得字符串的匹配與替換更為靈活和高效。本文將詳細(xì)介紹如何使用stringr和正則表達(dá)式來(lái)處理字符串,并提供相應(yīng)的示例代碼。
一、Stringr 包
1. 創(chuàng)建與查看
查看:
library(stringr) str_view("Hello World", "World")
使用
str_view可以直觀地查看匹配結(jié)果,base::writeLines可以顯示字符串內(nèi)容。轉(zhuǎn)義符:使用
\\進(jìn)行轉(zhuǎn)義,例如:# cat()函數(shù):Concatenate and Print(連接和打印) cat("This is a backslash: \\")This is a backslash: \
原始字符串:可以避免頻繁的轉(zhuǎn)義,例如:
raw_string <- r"(\d{3}-\d{2}-\d{4})"
2. 長(zhǎng)度與子集
字符串長(zhǎng)度:
str_length("Hello")[1] 5
按位置提取子集:
str_sub("Hello World", 1, 5)[1] "Hello"
填充字符串:
str_pad("Hello", width = 10, side = "both", pad = "-")[1] "--Hello---"
3. 檢測(cè)匹配
檢測(cè)匹配:返回邏輯值,注意是向量運(yùn)算;可以與sum()等統(tǒng)計(jì)函數(shù)合用。
str_detect(c("apple", "banana", "pear"), "a")[1] TRUE TRUE TRUE
選擇匹配的子集:對(duì)于字符串向量,選出符合匹配的子集,注意與
str_sub區(qū)分開(kāi)。str_subset(c("apple", "banana", "pear"), "a")[1] "apple" "banana" "pear"
統(tǒng)計(jì)匹配次數(shù):
str_count(c("apple", "banana", "pear"), "a")[1] 1 3 1
查看匹配:
str_view(c("apple", "banana", "pear"), "a")
4. 提取匹配
提取第一個(gè)匹配項(xiàng):如果沒(méi)有匹配則返回NA
str_extract("The price is $123", "\\$\\d+")[1] "$123"
提取所有匹配項(xiàng):
str_extract_all("The price is $123 or $456", "\\$\\d+")[1] "$123" "$456"
分組匹配:
str_match("The price is $123", "(\\$\\d+)")
5. 修改字符串
按位置替換子集:
text <- "Hello, world!" str_sub(text, 1, 5) <- "Hi"
轉(zhuǎn)換為小寫(xiě):
str_to_lower("Hello")替換匹配項(xiàng):
str_replace("The price is $123", "\\$\\d+", "$456")
6. 連接和分割
合并字符串:
str_c("Hello", "World", sep = " ")分割字符串:
str_split("apples,oranges,pears", ",")
7. 排序與定位字符串
排序字符向量:
str_sort(c("banana", "apple", "pear"))返回排序序號(hào):
str_order(c("banana", "apple", "pear"))定位匹配項(xiàng):
str_locate("The price is $123", "\\$\\d+")
二、正則表達(dá)式
1. 基礎(chǔ)/精確匹配
最簡(jiǎn)單的正則表達(dá)式是匹配一個(gè)精確的字符串,如apple。
2. 條件
“或”匹配:
str_detect(c("apple", "banana", "pear"), "apple|banana")“之一”匹配:
str_detect(c("apple", "banana", "pear"), "[aeiou]")
3. 錨點(diǎn) (始于權(quán)力^(power),終于金錢(qián)$)
開(kāi)始匹配:
str_detect("apple", "^a")結(jié)尾匹配:
str_detect("apple", "e$")
4. 量詞
出現(xiàn)0次或1次:
str_detect(c("color", "colour"), "colou?r")出現(xiàn)1次或更多:
str_detect(c("apple", "aple"), "ap+le")
5. 特殊字符集合
匹配任何數(shù)字(digit):
str_detect("123abc", "\\d")匹配空白字符(space):
str_detect("a b", "\\s")
6. 分組與回溯引用
分組匹配:
str_match("The price is $123", "(\\$\\d+)")回溯引用:
str_replace("abab", "(ab)\\1", "cd")
總結(jié)
到此這篇關(guān)于R語(yǔ)言使用Stringr與正則表達(dá)式進(jìn)行字符串處理的文章就介紹到這了,更多相關(guān)R語(yǔ)言Stringr與正則表達(dá)式字符串處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用R中merge()函數(shù)合并數(shù)據(jù)的方法
這篇文章主要介紹了使用R中merge()函數(shù)合并數(shù)據(jù),本文詳細(xì)介紹R中merge()函數(shù)參數(shù)及合并數(shù)據(jù)類(lèi)型,利用sql的表連接概念進(jìn)行類(lèi)比,簡(jiǎn)單易懂,需要的朋友可以參考下2023-03-03
R語(yǔ)言 查找滿(mǎn)足條件的數(shù)并獲取索引的操作
這篇文章主要介紹了R語(yǔ)言 查找滿(mǎn)足條件的數(shù)并獲取索引的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
R語(yǔ)言繪制corrplot相關(guān)熱圖分析美化示例及詳細(xì)圖解
這篇文章主要為大家介紹了R語(yǔ)言corrplot相關(guān)熱圖分析美化示例及詳細(xì)圖解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
R語(yǔ)言實(shí)現(xiàn)支持向量機(jī)SVM應(yīng)用案例
本文主要介紹了R語(yǔ)言實(shí)現(xiàn)支持向量機(jī)SVM應(yīng)用案例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn)代碼
這篇文章主要介紹了R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
使用R語(yǔ)言實(shí)現(xiàn)自動(dòng)文摘的方法
本文介紹了如何使用R語(yǔ)言實(shí)現(xiàn)自動(dòng)文摘,我們首先介紹了基于詞頻-逆文檔頻率(TF-IDF)的自動(dòng)文摘方法,包括創(chuàng)建詞項(xiàng)文檔矩陣,計(jì)算TF-IDF值,提取關(guān)鍵詞,以及根據(jù)關(guān)鍵詞生成摘要,需要的朋友一起學(xué)習(xí)下吧2023-05-05
詳解R語(yǔ)言MCMC:Metropolis-Hastings采樣用于回歸的貝葉斯估計(jì)
這篇文章主要介紹了R語(yǔ)言MCMC:Metropolis-Hastings采樣用于回歸的貝葉斯估計(jì),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
R語(yǔ)言ggplot2x軸順序設(shè)置自定義顏色的操作
這篇文章主要介紹了R語(yǔ)言ggplot2x軸順序設(shè)置自定義顏色的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
R語(yǔ)言ggplot2?title設(shè)置教程(main,axis和legend?titles)
ggplot2是一個(gè)強(qiáng)大的作圖工具,它可以讓你不受現(xiàn)有圖形類(lèi)型的限制,創(chuàng)造出任何有助于解決你所遇到問(wèn)題的圖形,下面這篇文章主要給大家介紹了關(guān)于R語(yǔ)言ggplot2?title設(shè)置(main,axis和legend?titles)的相關(guān)資料,需要的朋友可以參考下2023-02-02

