0 前言
数据根据结构可以分为结构化数据、非结构化数据和半结构化数据,前面介绍的数据处理函数针对于结构化数据,而字符串通常包含非结构化或者半结构化数据,这一部分介绍一下R和Python中的字符串函数。
1 目录
- 三种数据结构简介
- R与Python字符串函数
- 字符串函数-基于R
- 字符串函数--基于Python
2 三种数据结构
数据根据结构分为三种:结构化数据、非结构化数据、半结构化数据。
结构化数据可以使用关系数据库(RDBMS)存储,可以使用二维表来逻辑表达实现的数据(R和Python中的数据框类型数据)。数据以行为单位,每一行表示一个实体的信息,例如下图数据;结构化数据存储和排列很有规律,这有利于数据的查询和修改,但是扩展性不好,例如需要增加一个字段,需要对表进行添加列操作。
![fb00657b75b6856edb0bec500bdbaa47.png](https://i-blog.csdnimg.cn/blog_migrate/85aa57b7873e0b8c3e1966136ad42095.jpeg)
半结构化数据介于完全结构化数据和完全无结构化数据之间,具有一定的结构性。也就是说不符合关系型数据库而无法使用二维表逻辑表达的数据,和普通文本相比,半结构化数据具有一定的结构性,OEM(Object exchange Model)是一种典型的半结构化数据模型。XML、HTML文档就属于半结构化数据,数据的结果和内容混在一起,没有明显的区分。对于这种数据一般是化解为结构化数据。
非结构化数据,没有结构性的数据,各种文档、图片、视频、音频等都属于非结构化数据。对于非结构性数据,一般直接整体进行存储,而且通常存储为二进制的数据格式。
3 R与Python字符串函数
R语言中推荐使用stringr包里面的函数进行字符串处理,Python中有正则表达式库re和内置的字符串string包。
4 字符串函数--基于R
R语言中自带的字符串函数操作起来非常难用,而且函数名字经常记不住,因此这里介绍stringr包,提供了大部分字符串处理函数(如果发现很难使用stringr包中函数实现,可以考虑使用stringi,里面包含了全部字符串处理函数),函数名都是以str_c开头,函数的名称更加直观,比较容易记住。
stringr包中函数按照是否使用正则表达式分为使用正则表达式函数和其他函数,函数参数中有pattern参数的则为使用正则表达式函数。按照函数功能可分为:字符串拼接函数、字符串计算函数、字符串匹配函数和字符串转换函数,如图:
![854702f6dbb22a86f04d7d61ea8427a3.png](https://i-blog.csdnimg.cn/blog_migrate/7e9aec8057e6bde637e1291b125bda57.jpeg)
下面会按照字符串其他函数、R语言中正则表达式以及使用正则表达式的字符串函数进行介绍。
4.1 非正则表达式字符串函数
str_c()函数
字符串组合函数。组合两个或者多个字符串或者将字符向量合并为字符串,返回一个字符串
str_c(..., sep = "", collapse = NULL)
参数
sep : 字符串之间的分割方式使用sep参数控制</