放暑假了哎~
当处理文本数据时,深深地发现不能熟练运用字符串处理函数,是多么的浪费时间,还是做个整理,用的时候也方便查阅。
1
正则表达式
想要处理字符向量,熟悉正则表达式是必不可少的。
正则表达式:用来检索、替换那些符合某个模式(规则)的文本(非R专属,其他程序语言用的更多)
1.大部分字符比如字母,数字本身就是正则表达式,用于匹配本身,比如‘a’就是匹配‘a’的正则表达式
2.存在一些字符已经被转义,称为“元字符”,如. \ | ( ) [ ] { } ^ $ * + ?等,它们有特殊的意义。比如.代表任意一个字符,|表示前后表达式任选一个等。
3.想要匹配以上字符,需要加引用符号,一般是反斜杠\,在R中,需要加入两个反斜杠\\,比如匹配?,则写成\\?。
4.常用的特殊元字符了解一下(见表1)。
表1:正则表达式总结
2
R自带处理函数
R自带字符串处理函数,详细见《R语言实战》93页
1.获取字符串长度
nchar(x) 注意与length(x)的区别
2.字符串截取与替换
substr(x,start,stop) start与stop表示位置
3.字符串匹配
grep(pattern,x,ignore.case=FALSE,fixed=FALSE,value=TRUE) 返回值为匹配的位置索引;grepl()返回值为逻辑值TRUE/FALSE
4.字符串替换
sub(pattern,replacement,x,ignore.case=FALSE,fixed=FALSE)注意这里只替换第一个发现的结果;gsub()替换所有发现的目标值
5.字符串分割
strsplit(x,split,fixed= FALSE) 在split处分割字符串
6.字符串拼接
paste(…,sep = “”,collapse = NULL) sep表示两组字符串之间连接符,collapse表示一组字符串内部连接
7.大小写转换
toupper(x) 转为大写 tolower(x) 转为小写
以上所有ignore.case表示是否对大小写敏感,为了精确匹配,默认是敏感的;fixed表示是否将pattern视为正则表达式或一个文本字符串,默认是正则表达式;value表示是否返回原值,默认是返回匹配目标位置。
3
stringr包处理函数
对于R语言本身的base包提供的字符串基础函数,由于函数规则不一致,使用起来不是很方便,而stringr包被定义为一致的、简单易用的字符串工具集,所有的函数和参数定义都具有一致性,推荐学习使用。
ps:推文在电脑上看才能看全表格的内容…
4
应用
围在城里的人想逃出来,城外的人想冲进去,对婚姻也罢,职业也罢,人生的愿望大都如此。 --《围城》挺好看的
领取专属 10元无门槛券
私享最新 技术干货