R语言之数据处理(三)
终于来到数据处理的后一部分——特殊文本的处理,这章节主要介绍R语言一些对文本的处理函数,此处我们需要了解一下stringr包中的相关函数。除了函数之后,也会说一下正则表达式的相关内容。如果能够熟练地使用stringr包和正则表达式,在文本挖掘任务和网络文本抓取上必定是有很大的方便。
一、正则表达式
正则表达式其实如果有一些编程基础的小伙伴都应该会接触过,就和数据库或者excel的通配符用处一样,正则表达式通过用特定的字符去代表一类字符,从而在文本处理的时候能够识别出整类字符并加以操作,下面就介绍一下R语言中正则表达式一些基础。
·在R中,句号“.”是为广义化的正则式,它可是匹配任意字符。而中括号“[]”,括号中所包含的字符都会被匹配到,比如[A-Z]表示A-Z共26个大写字母任意一个。
·上箭头"^"与"[]"结合,如[^[A-D]],表示匹配A-D四个字符以外的字符。
·为了提高编写代码的效率,可以加入字符量化符,比如cccc可以用c{4}代替,具体的量化符下面会有总结表,就不再叙述。
·如果先按照固定的字符模式匹配时,可以使用小括号“()”,将字符模式用()括住。
·在正则表达式中,将有特殊含义的字符称为元字符,比如有上面".","[]","()","^"等等。为了准确匹配它们,需要在其前加上两个斜杠"\\"。在R中"\\"会被解释为单个字符,在正则表达式中单个斜杠"\"会被解释为引入一个转义序列。所以在使用特殊含义字符中(下面会有总结表)时,就需要注意转义的问题了。
1.预定义的字符集
2.量化符
3.特殊含义的字符
正则表达式的内容是虽然多,但重要的是学会使用。下面会介绍R中stringr包的函数,结合正则表达式,就能体会其方便,从而理解两者结合的意义。
二、stringr包的函数
stringr包的函数主要分为"使用正则表达式的函数"和"其他函数",下面是各函数的说明:
下面通过一些例子说明str类函数和正则表达式的结合:
·提取字符向量中所包含的完整邮箱
·分离编号和姓名
·识别邮箱种类
日常还有很多这样的文本处理任务,使用正则表达式就可以提高处理效率,特别在做网络爬虫的时候。后,可以跟大家分享一下我之前的工作任务——根据订单的产品销售情况,计算出业务员的产品提成。图一是部分订单明细的截图(每一条记录表示一位业务员出售的产品),图二是对应产品的奖励(每售出一种产品,奖励对应金额)。
如果有兴趣向动手操作的小伙伴,可以找我拿一下数据。到此,R语言的数据处理三个部分已经整理完毕了,接下来我是想聊一下数据可视化的问题,话说也是我感兴趣的部分了,有点小期待。
相关文章