前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R包系列——stringr包

R包系列——stringr包

作者头像
企鹅号小编
发布2018-02-11 13:12:05
2.3K0
发布2018-02-11 13:12:05
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

stringr包是Hadley Wickham大神贡献的R包之一,主要用于字符串的处理。对于经常需要对数据进行预处理的分析人员来说,简直是一把“利器”,可谓是上能屠龙,下能剔牙。其用法相比于R自带的函数,更加简单明了。stringr包在我工作中,是属于频繁使用的R包之一。简单的用法也是深入我心,强烈推荐使用该包进行字符串的预处理。

接下来,根据我在工作中使用到的stringr包的场景,介绍一下这些函数的用法。

字符拼接

场景:在读入csv或者xlsx格式文件时,根路径一般不一致,然后我一般使用全名路径。这家在读入文件的时候,不会因为路径的问题出错。

#根路径wd

去空格

场景:在Excel中,使用查找筛选时,字符串后面的空格往往对结果无影响,但是在R中,却会出问题,所以在匹配之前,先将空格删除。

space

分割与合并

场景:数据框中某一列按某一个分隔符分隔,需要将该列分列;或者数据框中某几列需要按分隔符合并成一列。具体可以查看

a a.split a.split[[1]][1] "a" "b" "c" "d"#合并,其实就是拼接字符串#使用unlist将a.split变成向量#当输入为单一向量时,使用collapse这个参数a.unite a.unite[1] "a_b_c_d"

替换

场景:批量导入csv文件时,由于部分文件是以逗号作为小数点的,虽然可以使用read.csv2函数正确读入,但是需要先判断出哪一部分以逗号为小数点,我觉得不如一起读入之后再做处理方便。

#替换comma

截取

场景:这个就比较特定的场景了,在公司有一个表,其中一列是规格,一列是规格与颜色合并,但是合并后也没有特定的分隔符,需要把颜色截取出来。

#截取guige

提取

场景:与截取的功能类似,但是可以使用正则表达式匹配,更为强大。在我的工作中,常用来提取csv文件名。

#提取filepath

字母大小写转换

场景:在Excel中,查找匹配不区分大小写,但是在R中区分大小写,常出现在Excel中能查到到但是R中匹配不到的情况,故先预处理统一大小写再做匹配。

#大小写转换r.letter

检测

场景:常跟ifelse函数配合使用,对某一列字符串进行判断是否匹配。多用于新建列

#检测df df$b df a b1 1 数字2 2 数字3 3 数字4 a 非数字5 b 非数字6 c 非数字

以上是本人较常用的stringr包函数,可以发现该包的语法简洁,用法简单明了,同时提供的正则表达式匹配,更为强大。熟练掌握后,对文本的预处理简直无往不利,如丝般顺滑。该包不仅仅只有以上几个函数,还有其他函数,只是工作中较少用到,所以未列举出来。可见stringr包确实强大,提供了一整套字符串的处理方案。强烈推荐stringr包,相信它可以给你提供你预想不到的便利与高效。

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档