7.2.1 使用stringr包处理字符串

7.2.1 使用stringr包处理字符串

stringr包主要用于处理字符串,与R基础包中用于处理字符串的函数相比,stringr包中的函数在效率和复用率上都有更好的表现。stringr包中的函数形式统一,这些函数都以str_作为函数的开头,后缀则是函数的功能,简单明了。加载stringr包的方式如下:

在R语言中,构造字符串非常简单,我们只需要将文本内容放在双引号或者单引号中即可。我们可以构造一个字符串并将它保存在str变量中,示例如下:

我们可以通过str_length()函数来获取字符串的长度,代码如下:

如果需要合并两个或多个字符串,可以使用str_c()函数:

也可以通过sep参数来设置字符串之间的分隔符:

在R语言中,如果直接将字符串与缺失值合并会输出缺失值,从而不能得到需要的结果,这时可以使用str_replace_na()函数将NA转换为字符串“NA”后再进行合并,示例如下:

由上述输出结果可以发现,str_c()函数可以对输入字符向量中的每个字符串进行遍历,并且能够循环使用长度较短的字符向量,但是该函数要求较长字符向量的长度是较短字符向量长度的整数倍。

如果想要将字符向量合并为字符串,可以使用collapse参数:

如果想要复制字符串,可以使用str_dup()函数,该函数有两个输入参数,第一个参数设置复制的字符串对象,第二个参数设置复制字符串对象的次数,代码如下:

str_pad()函数可以通过添加指定的字符来补齐字符串,示例如下:

其中,width参数控制输出字符串的长度;side参数控制补齐字符串的位置;pad参数控制补齐字符串的字符。

str_trim()和str_squish()函数可以对字符串中的空格进行删除,示例如下:

其中,str_trim()函数可以删除字符串两侧的空格,str_squish()函数可以删除字符串两侧的空格并把内部长度大于1的空格缩减为1个空格。

如果需要提取或修改字符串的内容,可以使用str_sub函数,示例如下:

stringr包中还有许多有用的函数,在第7.2.3节还会重点加以介绍,读者也可以通过问号加方法名的方式或者help()函数来查看其他函数的用法。