r语言提取cvs数据_R语言之数据处理(三)

460a41e6e5fbd909f68865cdf9c459fd.png

终于来到数据处理的最后一部分——特殊文本的处理,这章节主要介绍R语言一些对文本的处理函数,此处我们需要了解一下stringr包中的相关函数。除了函数之后,也会说一下正则表达式的相关内容。如果能够熟练地使用stringr包和正则表达式,在文本挖掘任务和网络文本抓取上必定是有很大的方便。

一、正则表达式

正则表达式其实如果有一些编程基础的小伙伴都应该会接触过,就和数据库或者excel的通配符用处一样,正则表达式通过用特定的字符去代表一类字符,从而在文本处理的时候能够识别出整类字符并加以操作,下面就介绍一下R语言中正则表达式一些基础。

·在R中,句号“.”是最为广义化的正则式,它可是匹配任意字符。而中括号“[]”,括号中所包含的字符都会被匹配到,比如[A-Z]表示A-Z共26个大写字母任意一个。·上箭头"^"与"[]"结合,如[^[A-D]],表示匹配A-D四个字符以外的字符。·为了提高编写代码的效率,可以加入字符量化符,比如cccc可以用c{4}代替,具体的量化符下面会有总结表,就不再叙述。·如果先按照固定的字符模式匹配时,可以使用小括号“()”,将字符模式用()括住。·在正则表达式中,将有特殊含义的字符称为元字符,比如有上面".","[]","()","^"等等。为了准确匹配它们,需要在其前加上两个斜杠""。在R中""会被解释为单个字符,在正则表达式中单个斜杠""会被解释为引入一个转义序列。所以在使用特殊含义字符中(下面会有总结表)时,就需要注意转义的问题了。

1.预定义的字符集

4aa0f49d79d0cc6a64f215a1ffc36e67.png
R语言正则表达式预定义的字符集

2.量化符

599aa4fee5968485931853c6b9242df4.png
R语言正则表达式的量化符

3.特殊含义的字符

5f419a13d33ca9b0d0de7c7d7ec94a83.png
R语言正则表达式特殊含义的符号

正则表达式的内容是虽然多,但最重要的是学会使用。下面会介绍R中stringr包的函数,结合正则表达式,就能体会其方便,从而理解两者结合的意义。

二、stringr包的函数

stringr包的函数主要分为"使用正则表达式的函数"和"其他函数",下面是各函数的说明:

2275396136d4c4057882ab0acb1d43bd.png
stringr函数说明

下面通过一些例子说明str类函数和正则表达式的结合:

·提取字符向量中所包含的完整邮箱

b10e29578c53ebe68a5656d8939dc87d.png
([:alnum:]+@[:alnum:]+.com)'正确识别出邮箱,排除其他干扰项

·分离编号和姓名

9bfed5901bb0b68e74fe728b8f065ffe.png
识别不同类型的值,并加以处理

·识别邮箱种类

113a0839fcf2b5c6b38f08b7abbef0e4.png
去掉与正则表达式不符的部分,得到目标

日常还有很多这样的文本处理任务,使用正则表达式就可以提高处理效率,特别在做网络爬虫的时候。最后,可以跟大家分享一下我之前的工作任务——根据订单的产品销售情况,计算出业务员的产品提成。图一是部分订单明细的截图(每一条记录表示一位业务员出售的产品),图二是对应产品的奖励(每售出一种产品,奖励对应金额)。

67a091d8ba6b86054845a4676e2b03ac.png
图一

c88d3e3d711cd47fb5b0c407225614e5.png
图2

如果有兴趣向动手操作的小伙伴,可以找我拿一下数据。到此,R语言的数据处理三个部分已经整理完毕了,接下来我是想聊一下数据可视化的问题,话说也是我最感兴趣的部分了,有点小期待。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值