字符数据"/>
R语言 处理字符数据
处理字符数据,需要掌握一些正则表达式的知识,及一些相应的函数。
正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
- 正则表达式是用于描述或匹配一个文本集合的表达式。
- 所有英文字母、数字和很多可现实的字符本身就是正则表达式,用于匹配它们自己。
- 一些特殊的字符在正则表达式中不再用来描述它自身,它们在正则表达式中已经被“转义”,这些字符称为“元字符”。
常用元字符
符号 | 描述 |
---|---|
. | 除了换行以外的任意字符 |
\ \ | 转义字符,如果要匹配括号就要写成“\ \ ( \ \ )” |
I | 表示可选项,即 I 前后的表达式任选一个 |
^ | 若放在表达式开始处,表示匹配文本开始位置; 若放在方括号内开始处,表示非方括号内的任一字符 |
$ | 放在句尾,表示一行字符串的结束 |
( ) | 提取匹配的字符串,( \ \ s * )表示连续空格的字符串 |
[ ] | 选择方括号中的任意一个(如 [a-z] 表示任意一个小写字符) |
{ } | 前面的字符或表达式的重复次数。 如 {5, 12} 表示重复的次数不能少于5次,不能多于12次,否则都不匹配 |
* | 前面的字符或表达式重复零次或更多次 |
+ | 前面的字符或表达式重复一次或更多次 |
? | 前面的字符或表达式重复零次或一次 |
正则表达式的符号运算顺序:
- 圆括号括起来的表达式最优先
- 然后是表示重复次数的操作(即 * + {} )
- 接下来是连接运算(其实就是几个字符放在一起,如 abc)
- 最后是表示可选项的运算(|)
字符串处理函数
可以从文本型数据中抽取信息,或者为打印输出和生成报告重设文本的格式
常用字符串处理函数:
函数 | 描述 |
---|---|
nchar(x) | 计算x中的字符数量 |
substr(x, start, stop) | 提取或替换一个字符向量中的子串 |
grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE) | 字符串查询,返回结果为匹配项的下标 |
sub(pattern, replacement, x, ignore.case = FALSE, fixed = FALSE) | 对第一个满足条件的匹配做替换,原字符串并没有改变,要改变原变量只能通过再赋值的方式 |
gsub(pattern, replacement, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)) | 把所有满足条件的匹配都做替换,原字符串并没有改变,要改变原变量只能通过再赋值的方式 |
strsplit(x, split, fixed = FALSE, perl = FALSE, useBytes = FALSE) | 在split处分割字符向量x中的元素 |
paste(…, sep = " ", collapse = NULL) | 连接字符串,分隔符为sep |
其他使用函数:
函数 | 描述 | 代码示例 | 代码运行结果 |
---|---|---|---|
length(x) | 返回对象x的长度值 | length(c(2,5,6,9)) | 4 |
seq(from,to,by) | 根据参数的要求生成一个序列 | seq(1,10,2) | 1,3,5,7,9 |
rep(x,n) | 将x重复n次 | rep(1:3,2) | 1,2,3,1,2,3 |
cut(x,n) | 将连续型变量x分割为有着n个水平的因子,使用选项ordered_result = TRUE以创建一个有序型因子 | ||
pretty(x,n) | 创建美观的分割点。通过选取n+1个等间距的取整值,将一个连续型变量x分割为n个区间。绘图中常用 | ||
cat(…,file=“myfile”,append=FALSE) | 连接…中的对象,并将其输出到屏幕上或文件中(如果声明了一个的话) | firstname <- c("Jane") cat("hello",firstname,"\n") |
更多推荐
R语言 处理字符数据
发布评论