用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,” “)