2、字串替換利器–str_replace_all
3、字串抽取利器–str_match_all
4、字串擷取利器–str_sub
str_split(string, pattern, n = inf, simplify = false)
string:指定需要處理的字串向量
pattern:分隔符,可以是複雜的正規表示式
n:指定切割的份數,預設所有符合條件的字串都會被拆分開來
simplify:是否返回字串矩陣,預設以列表的形式返回
> str_split(c('ls***[email protected]','0511-87208801'), '[@-]')
[[1]]
[1] "ls***2011"
"163.com"
[[2]]
[1] "0511"
"87208801"
>
#例如資料表中有一列郵箱字段,如何把位址和網域名稱兩部分拆分開來儲存到新的兩列中?
email <- c('ls***[email protected]','[email protected]','[email protected]','[email protected]')
df <- data.frame(email, add, doman)
df
> df
email add doman
1 ls***2011@163
.com ls***2011 163.
com2
1029776077 qq.com
3 [email protected] qazwsx gmail.com
4 abc123edc@126
.com abc123edc 126.
com>
str_replace(string, pattern, replacement)
str_replace_all(string, pattern, replacement)
string:字串向量
pattern:被替換的子字串,可以是複雜的正規表示式
replacement:用來替換的字串
#例子
#將含有千分位符或百分位符的資料轉換為數值型資料
commadata <- c('123,456','780,123,433','45,234')
percentdata <- c('23.4%','34.56','44.12%')
commadatanew <- as.numeric(str_replace_all(commadata, ',', ''))
percentdatanew <- as.numeric(str_replace_all(percentdata, '%', ''))/100
commadatanew
percentdatanew
str_extract(string, pattern)
str_extract_all(string, pattern, simplify = false)
string:字串向量
pattern:抽取出滿足條件的子字串,往往使用正規表示式
simplify:是否返回字串矩陣,預設以列表的形式返回
兩個函式的區別在於,前面函式只抽取出首次滿足條件的子字串,後面的函式可以抽取出所有滿足條件的子字串。當前面的函式沒有匹配到抽取的結果,則返回na,而後面的函式在沒有匹配到抽取的結果時返回character(0)。
str_match(string, pattern)
str_match_all(string, pattern)
函式引數的含義同str_extract。
例子:
# 抽取出字串中的日期和流量值
s <- c('date:2017-04-14,pv:223453','date:2017-04-15,pv:228115','date:2017-04-16,pv:201233','date:2017-04-17,pv:324123')
date <- str_extract_all(s, '[0-9]-[0-9]-[0-9]')
pv <- str_extract_all(s, 'pv:([0-9]*)')
unlist(date)
unlist(pv)
#結果中的pv兩竟然還是包含'pv:'字串,下面我們用另乙個抽函式str_match_all。
pv <- str_match_all(s, 'pv:([0-9]*)')
pv
str_sub(string, start = 1l, end = -1l)
string:字串向量
start:指定獲取子字串的起始位置
end:指定獲取子字串的終止位置
注意:如果start或end為負整數時,則從字串的最後乙個字元向前查詢
#例子
# 獲取手機號的末尾4位(負整數引數)
s <- c('13611235678','13912343344','17888886666')
(tail4 <- str_sub(s, -4))
R語言處理字串
用於字串分割的函式 如strsplit 123abcdefgabcdef ab 1 1 123 cdefg cdef 字串連線 paste paste sep collapse null 字串分割 strsplit strsplit x,split,extended true,fixed false...
字串處理函式 R語言
用於字串分割的函式 如strsplit 123abcdefgabcdef ab 1 1 123 cdefg cdef 字串連線 paste paste sep collapse null 字串分割 strsplit strsplit x,split,extended true,fixed false...
R語言 字串處理函式
r語言中字串處理函式 來自base包 函式說 明 nchar x 計算x中的字元數量 substr 提取或替換乙個字元向量中的子串 grep 在字串中匹配某種模式 sub 在字串中搜尋模式,並以另乙個文字替換 strsplit 分割字串 toupper 大寫轉換 tolower 小寫轉換 1 nch...