首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R包系列——stringr包

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包,相信它可以给你提供你预想不到的便利与高效。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171219G0KS3200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券