用stringr包处理惩罚字符串
《Machine Learning for Hackers》一书的合著者John Myles White克日接管了一个访谈。在访谈中他提到了本身在R中常用的几个扩展包,个中包罗用ggplot2包来画图,用glmnet包做回归,用tm包举办文本挖掘,用plyr、reshape、lubridate和stringr包举办数据预处理惩罚。这些包本博客大部门都有所先容,本日就来看看这个漏掉的stringr包。
从名字就看得出,stringr包是用来处理惩罚字符串的。R语言自己的字符处理惩罚本领已经不错了,但利用起来并不是很利便。stringr包将原本的字符处理惩罚函数举办了打包,统一了函数名和参数。在加强成果基本上,还能处理惩罚向量化数据并兼容非字符数据。stringr包号称能让处理惩罚字符的时间淘汰95%。下面将个中的一些主要函数摆列一下。
library
(stringr)
# 归并字符串
fruit <-
c
(
“apple”
,
“banana”
,
“pear”
,
“pinapple”
)
res <-
str_c
(1:4,fruit,sep=
‘ ‘
,collapse=
‘ ‘
)
str_c
(
‘I want to buy ‘
,res,collapse=
‘ ‘
)
# 计较字符串长度
str_length
(
c
(
“i”
,
“like”
,
“programming R”
,123,res))
# 按位置取子字符串
str_sub
(fruit,1,3)
# 子字符串从头赋值
capital <-
toupper
(
str_sub
(fruit,1,1))
str_sub
(fruit,
rep
(1,4),
rep
(1,4))<- capital
# 反复字符串
str_dup
(fruit,
c
(1,2,3,4))
# 加空缺
str_pad
(fruit,10,
“both”
)
# 去除空缺
str_trim
(fruit)
# 按照正则表达式检讨是否匹配
str_detect
(fruit,
“a$”
)
str_detect
(fruit,
“[aeiou]”
)
# 找出匹配的字符串位置
str_locate
(fruit,
“a”
)
# 提取匹配的部门
str_extract
(fruit,
“[a-z]+”
)
str_match
(fruit,
“[a-z]+”
)
# 替换匹配的部门
str_replace
(fruit,
“[aeiou]”
,
“-“
)
# 支解
str_split
(res,
” “
)