
上QQ阅读APP看书,第一时间看更新
3.3 字符串的提取
对于特定字符串的提取,有两种方式:一种是根据字符串所在位置进行提取,可以用str_sub函数实现;另一种是根据字符串的内容进行提取,可以使用str_extract函数实现。下面进行分别介绍。
1.根据字符串位置信息进行提取
如果我们现在要提取“上海自来水来自海上,山西煤运车煤运西山”中第1到5个字符,那么可以使用str_sub函数实现。

这样就把“上海自来水”提取了出来。其实,函数中的1和5分别传递给了start和end两个参数,一个表示起始位置,一个表示终点位置。起始位置和终点位置可以有负值,代表终结点在倒数第几个字符,例如我们要提取倒数4个字符。

这样我们就将起始位置放在了倒数第四,终点位置放在了倒数第一,把最后的4个字符提取了出来。
2.根据字符串内容进行提取
除了按照位置信息进行提取之外,还能够直接按照内容特征进行提取。例如把“山西”提取出来,可以用str_extract函数实现。

如果提取值不在,则会返回缺失值NA。

这种提取方式仿佛是在识别字符串中是否包含相关子串,在学习了正则表达式之后,就能够根据字符特征来进行提取,这样将会给这个函数赋予特殊的意义,从而有效发挥它的功能。正则表达式的使用将会在下一章节中介绍。