- 文本数据挖掘:基于R语言
- 黄天元编著
- 477字
- 2021-07-08 12:07:07
3.3 字符串的提取
对于特定字符串的提取,有两种方式:一种是根据字符串所在位置进行提取,可以用str_sub函数实现;另一种是根据字符串的内容进行提取,可以使用str_extract函数实现。下面进行分别介绍。
1.根据字符串位置信息进行提取
如果我们现在要提取“上海自来水来自海上,山西煤运车煤运西山”中第1到5个字符,那么可以使用str_sub函数实现。
![](https://epubservercos.yuewen.com/CB81A2/20516007901591506/epubprivate/OEBPS/Images/64_05.jpg?sign=1739671819-jVWPLNf2vztHElegHpO7fCR6spb8t7kn-0-9bfc9c430b2b6eca1d452c6b000cce9f)
这样就把“上海自来水”提取了出来。其实,函数中的1和5分别传递给了start和end两个参数,一个表示起始位置,一个表示终点位置。起始位置和终点位置可以有负值,代表终结点在倒数第几个字符,例如我们要提取倒数4个字符。
![](https://epubservercos.yuewen.com/CB81A2/20516007901591506/epubprivate/OEBPS/Images/65_01.jpg?sign=1739671819-vCuiLNwV2gSH6GSwjPPlhafdN7TDqwp0-0-c302086b31ddaa3c124b42a791d43196)
这样我们就将起始位置放在了倒数第四,终点位置放在了倒数第一,把最后的4个字符提取了出来。
2.根据字符串内容进行提取
除了按照位置信息进行提取之外,还能够直接按照内容特征进行提取。例如把“山西”提取出来,可以用str_extract函数实现。
![](https://epubservercos.yuewen.com/CB81A2/20516007901591506/epubprivate/OEBPS/Images/65_02.jpg?sign=1739671819-UB2XjPBxdyJs0v4WUZQriX7JdzPr8MOd-0-611c890e5641c3bf48c2d4f4b3b57461)
如果提取值不在,则会返回缺失值NA。
![](https://epubservercos.yuewen.com/CB81A2/20516007901591506/epubprivate/OEBPS/Images/65_03.jpg?sign=1739671819-JrHHk72438i78UgZfpzgy6CmL4q2Vq4n-0-9f323f520013e266473723951176ac7f)
这种提取方式仿佛是在识别字符串中是否包含相关子串,在学习了正则表达式之后,就能够根据字符特征来进行提取,这样将会给这个函数赋予特殊的意义,从而有效发挥它的功能。正则表达式的使用将会在下一章节中介绍。