stringr | 文本处理方法(Ⅰ-1):字符串处理函数(上)
stringr
是tidyverse
系列包中专门用于文本处理的工具包,其中字符串处理的函数均遵循str_*
的命名方式。
library(stringr)
本篇先简单介绍部分str_*()
系列函数。
words
是该包自带的数据集,其中包含了980个英文单词。本篇从中选取三个单词作为示例数据:
(word3 <- words[c(9, 98, 980)])
## [1] "act" "blow" "young"
字符串长度
str_length()
函数用于计算字符串的长度(包含空格);若为字符串向量,则分别计算各元素的长度。
str_length(string)
示例如下:
str_length(word3)
## [1] 3 4 5str_length(" A B C")
## [1] 6
连接字符串
str_c()
和str_flatten()
函数用于连接字符串。语法结构如下:
str_c(..., sep = "", collapse = NULL)
str_flatten(string, collapse = "")
sep:连接符号;在连接多个字符串时使用;
collapse:连接符号;在连接字符串向量中的元素时使用;
str_flatten()
函数只有collapse
参数,只能用于连接字符串向量的元素。
连接多个字符串:
str_c(word3[1], word3[2], word3[3],sep = "-")
## [1] "act-blow-young"str_c(word3[1], word3[2], word3[3],collapse = "-") # 不起作用
## [1] "actblowyoung"
上述例子中连接的是多个字符串,因此
collapse
参数不起作用;
sep
参数的默认状态为不使用连接符号,因此第二行代码的输出结果为actblowyoung
。
连接字符串向量的元素:
str_c(word3, sep = "-") # 不起作用
## [1] "act" "blow" "young"str_c(word3, collapse = "-")
## [1] "act-blow-young"str_flatten(word3, "-")
## [1] "act-blow-young"
sep
参数在连接字符串向量的元素时不起作用;由于str_c()
函数的collapse
参数默认值为NULL,因此第一行代码实际上没有进行连接;
str_flatten()
函数的collapse
在第二个位置上,调用时可省略参数名。
字符串向量的元素排序
str_order()
函数仅返回每个元素的序号,不执行排序操作;str_sort()
执行排序操作。语法结构如下:
str_order(x, decreasing = FALSE,na_last = TRUE, locale = "en",numeric = FALSE, ...)
str_sort(x, decreasing = FALSE,na_last = TRUE, locale = "en",numeric = FALSE, ...)
x:字符串向量;
decreasing:逻辑型参数;是否降序,默认为否;
na_last:TRUE表示将缺失值放置在结尾,FALSE表示放置在开头,NA表示删除缺失值;
locale:字符串的语言类型,默认为英语(en);
numeric:是否按数值排序,默认为否。
txt <- c(NA, "123", word3)
str_order(txt)
## [1] 2 3 4 5 1str_sort(txt)
## [1] "123" "act" "blow" "young" NAstr_sort(txt, na_last = F)
## [1] NA "123" "act" "blow" "young"str_sort(txt, na_last = NA)
## [1] "123" "act" "blow" "young"
大小写转换
str_to_upper()
函数将字符串全部转为大写字母;str_to_lower()
函数全部转为小写字母;str_to_title()
函数将字符串的每个单词的首字母转为大写,其余转为小写;str_to_sentence()
函数将字符串首字母大写,其余转为小写。语法结构如下:
str_to_upper(string, locale = "en")
str_to_lower(string, locale = "en")
str_to_title(string, locale = "en")
str_to_sentence(string, locale = "en")
示例如下:
str_to_upper("welcome")
## [1] "WELCOME"str_to_lower("weLCome")
## [1] "welcome"str_to_title("welcome to Rstudier")
## [1] "Welcome To Rstudier"str_to_sentence("welcome to Rstudier")
## [1] "Welcome to rstudier"
删除空格
str_trim()
函数用于删除字符串首、尾(可选)的空格;str_squish()
函数除删除首、尾空格(不可选)外,还会删除内部多余的空格。语法结构如下:
str_trim(string, side = c("both", "left", "right"))
str_squish(string)
side:both表示同时删除首、尾空格;left表示仅删除开头空格;right表示仅删除结尾空格。
str_trim(" wel come to Rstudier ", side = "left")
## [1] "wel come to Rstudier "str_squish(" wel come to Rstudier ")
## [1] "wel come to Rstudier"
上述例子中
wel come
内部有两个空格,第二行代码的输出结果将其删除了一个;删除内部空格可以使用
st_remove()
函数根据模式匹配进行删除,详见下篇。
提取字符串的部分
str_sub()
函数可以根据起、始位置提取字符串的部分。语法结构如下:
str_sub(string, start = 1L, end = -1L)
str_sub(string, start = 1L, end = -1L,omit_na = FALSE) <- value
示例如下:
x <- "welcome to Rstudier"
str_sub(x, 4, 12)
## [1] "come to R"str_sub(x, 4, 12) <- "U"; x
## [1] "welUstudier"
str_extract()
函数可以根据模式匹配进行提取,详见下篇。
其他
str_pad()
函数通过width
参数设置字符串的最短长度,不足的通过pad
参数补充,side
参数控制补充的位置。语法结构如下:
str_pad(string, width, side = c("left", "right", "both"),pad = " ")
示例如下:
str_pad(word3, width = 6, side = "both",pad = "-")
## [1] "-act--" "-blow-" "young-"
str_trunc()
参数通过width
参数设置字符串的最大长度,多余部分使用ellipsis
参数的内容代替(默认为...
)。语法结构如下:
str_trunc(string, width, side = c("right", "left", "center"),ellipsis = "...")
示例如下:
str_trunc(word3, width = 4, side = "right")
## [1] "act" "blow" "y..."
str_dup()
函数可以重复字符串,重复次数由times
参数控制。语法结构如下:
str_dup(string, times)
示例如下:
str_dup(word3, times = 3)
## [1] "actactact" "blowblowblow" "youngyoungyoung"
stringr | 文本处理方法(Ⅰ-1):字符串处理函数(上)相关推荐
- sql把字串字段相加串连的方法(CONCAT字符串连接函数) sysdee 发表于 成功志 分类,标签: sql把字串字段相加串连的方法 CONCAT字符串连接函数 18 5月 2012 0 有的时候
sql把字串字段相加串连的方法(CONCAT字符串连接函数) sysdee 发表于 成功志 分类,标签: sql把字串字段相加串连的方法 CONCAT字符串连接函数 185月2012 0 有的时候,我 ...
- stringr | 文本处理方法(Ⅰ-3):字符串处理函数(下)
本系列的上一篇推文介绍了正则表达式,本篇继续介绍str_*()系列函数,这些函数均有一个共同的参数pattern. library(stringr) 提取 前面介绍了按位置提取的函数str_sub() ...
- Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类、split函数基于指定分隔符拆分数据列的内容为列表、使用len计算每个列表的长度
Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类.split函数基于指定分隔符拆分数据列的内容为列表.使用len计算每个列表的长度 目录
- Python字符串类型:字符串索引、字符串切片、字符串format()方法格式化、字符串操作符、字符串处理函数
字符串:由0个或多个字符组成的有序序列sequence. 一.字符串表示方式:2类4种 由一对单引号或双引号表示,该方式仅用于表示单行字符串 由一对三单引号或三双引号,该方式可以表示多行字符串 如果希 ...
- Excel中拼接文本字符串-CONCATENATE函数
Excel中拼接文本字符串-CONCATENATE函数 CONCATENATE函数 函数简介 函数语法 函数说明 示例 CONCATENATE函数 函数简介 CONCATENATE 函数用于Excel ...
- python字符串find函数-Python字符串的方法,查找和替换
Python数字 整型 int 如:1 4 8 浮点型 float 如:1.0 3.6 78.9 长整型 long 如:1L 37565846588L(在一个整数后面加上L就是长整型,理论上长整型的长 ...
- 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )
文章目录 一.函数形参使用推荐方法 二.完整代码示例 一.函数形参使用推荐方法 在函数中 , 形参 中的 指针变量 , 不建议直接使用 ; 推荐 在 函数中 , 定义 局部 指针变量 , 接收 形参中 ...
- Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...
- 字符串-文本对齐方法演练
# 假设:以下内容是从网络上抓取的 # 要求:顺序并且居中对齐输出以下内容 poem = ["\t\n登鹳雀楼","王之涣","白日依山尽\t\n&q ...
最新文章
- php连接不到mysql怎么解决,怎么解决php无法连接mysql的问题
- JS服务器端开发基础篇(Array.slice方法和splice方法)
- Linq之select子句
- however the ssl module in Python is not available
- python简单代码演示效果-Python Selenium的简单演示程序
- UVA11384正整数序列(把123..变成0的最小步数)
- v-bind 属性绑定
- 深划痕需要大面积补漆吗_剐蹭了需要立马补漆吗?这些小技巧能省不少!
- 关于Visual Studio 2019的前期详情
- Nginx的Rewrite规则编写
- php 关于token、签名、加密的一点理解
- [导入]意外的,博客被点名了。参与游戏吧。
- Ext.Net配色方案
- Android 性能专项之 Memory Monitor 工具-memery
- 远程粒子计数器助力药企环境监测 为洁净卫生护航
- 牵线搭桥,『桥接模式』
- 3D打印开源软件Cura分析(1) 【转】
- NTP调整系统时间同步
- 2017全球ROI Top25游戏广告平台排行榜
- css3的书本翻页效果
热门文章
- 从北大高材生被华为辞退中我们需要学到什么?
- VMware vSphere 6.7配置最大更改
- 敏捷开发系列学习总结(16)——给Scrum Master的十个建议
- Linux学习总结(45)——Linux服务器出现卡慢的基本解决方法
- Maven学习总结(39)——Maven私服的搭建及使用deploy命令部署构建问题汇总
- java development kit64_Java SE Development Kit (JDK) v14.0 x64
- 自动路由_小米路由器Mesh首销 多路由自动切换/为智能家居而生
- angularjs--resource
- 安装使用ubuntu和opensuse
- iTween for Unity