Mac版R语言(五)使用正则表达式(Regular Expressions)提取数据信息
来源:互联网 发布:linux 网络连接日志 编辑:程序博客网 时间:2024/04/27 04:00
通常情况下,我们收集到的数据可能是混合字段或非标准化的数据集。这些数据往往需要我们通过一定的方式,提取出其中特定维度或字段的信息,并以此创建新的数据集。
在低维数据中,可以使用剔除行列的方式选取特定字段的信息;或者直接进行行列选取的方法(具体实现方式,详见(三)数据的导入点击打开链接),但是当数据库是高维度数据库、空间数据库、非标准化数据库时,如HDF5,普通的删除行列方式提取信息的效率非常低下。本节内容,是通过正则表达式(Regular Expressions)实现信息的精确提取,本章内容的关键名词将全部实现中英文双标,涵盖以下几个要点:
- 指定信息提取/指定数据类型提取
- 混乱数据集的特定信息提取
- 非标准化数据集的特定信息提取
以上实现方式全部基于Regular Expression。
一. 指定信息提取/指定数据类型提取
>setwd("~/Desktop")
> getwd()
[1] "/Users/Apple/Desktop"
> library(stringr) #需提前安装 stringr 包,具体安装方法,请见第一篇博客内容点击打开链接
> strings <- c(
+ "apple",
+ "219 733 8965",
+ "329-293-8753",
+ "Work:579-499-752;Home:543.355.3679"
+ )
> phone <- "([1-9][0-9]{2}[- .][0-9]{3}[- .][0-9]{4})" #phone的Pattern matching,第一个数2~9,第二个数0~9有两个,分隔符为-空格.
> getwd()
[1] "/Users/Apple/Desktop"
> library(stringr) #需提前安装 stringr 包,具体安装方法,请见第一篇博客内容点击打开链接
> strings <- c(
+ "apple",
+ "219 733 8965",
+ "329-293-8753",
+ "Work:579-499-752;Home:543.355.3679"
+ )
> phone <- "([1-9][0-9]{2}[- .][0-9]{3}[- .][0-9]{4})" #phone的Pattern matching,第一个数2~9,第二个数0~9有两个,分隔符为-空格.
> str_detect(strings,phone) #strings中哪些项符合phone的regular expression匹配,返回相应位置逻辑值
[1] FALSE TRUE TRUE TRUE
[1] FALSE TRUE TRUE TRUE
> str_subset(strings,phone) #
[1] "219 733 8965" "329-293-8753"
[3] "Work:579-499-7527;Home:543.355.3679"
str_subset()
returns the elements of a character vector that match a regular expression [1] "219 733 8965" "329-293-8753"
[3] "Work:579-499-7527;Home:543.355.3679"
> str_extract(strings,phone) #
[1] NA "219 733 8965" "329-293-8753" "579-499-7527"
str_extract()
extracts text corresponding to the first match, returning a character vector[1] NA "219 733 8965" "329-293-8753" "579-499-7527"
>str_extract_all(strings,phone,simplify = T) #
[,1] [,2]
[1,] "" ""
[2,] "219 733 8965" ""
[3,] "329-293-8753" ""
[4,] "579-499-7527" "543.355.3679"
str_extract_all()
extracts all matches and returns a list of character vectors.[,1] [,2]
[1,] "" ""
[2,] "219 733 8965" ""
[3,] "329-293-8753" ""
[4,] "579-499-7527" "543.355.3679"
>str_split(stringrs,"[- .]") #
[[1]]
[1] "apple"
[[2]]
[1] "219" "733" "8965"
[[3]]
[1] "329" "293" "8753"
[[4]]
[1] "Work:579" "499" "7527;Home:543" "355" "3679"
str_split()
splits a string into a variable number of pieces and returns a list of character vectors.[[1]]
[1] "apple"
[[2]]
[1] "219" "733" "8965"
[[3]]
[1] "329" "293" "8753"
[[4]]
[1] "Work:579" "499" "7527;Home:543" "355" "3679"
阅读全文
2 0
- Mac版R语言(五)使用正则表达式(Regular Expressions)提取数据信息
- 正则表达式(Regular Expressions)
- 正则表达式(Regular Expressions)
- 正则表达式(regular expressions)
- Regular Expressions 正则表达式(一)
- ABAP 正则表达式(Regular Expressions)
- 正则表达式小结(Regular Expressions)
- @正则表达式-- Regular Expressions
- 正则表达式Regular Expressions
- 正则表达式Regular Expressions
- Introducing Regular Expressions (正则表达式入门)读书总结
- SAS9新体验-在DATA STEP中使用perl 正则表达式支持(Regular Expressions)
- Python Regular Expressions 正则表达式
- 正则表达式 regular expression(五)
- 读书笔记《Mastering Regular Expressions》(一) 完整域名的正则表达式
- Regular Expressions (REs) 传说中的正则表达式
- C#使用正则表达式提取网页中的信息数据
- 正则表达式(regular expression)
- python若干问题
- 新唐Nuvoton NUC972 看门狗WatchDog(WDT)使用注意事项
- 联合类型及其应用
- Jfinal配置不得不注意的问题
- Shell case esac语句
- Mac版R语言(五)使用正则表达式(Regular Expressions)提取数据信息
- GitHub进阶笔记1--Github常用命令
- Maven使用心得
- 实现AJAX跨域的三种方法
- CMD命令---切换目录
- 第十二周作业
- 求两个数组的交集
- Arithmetic Slices
- 设计模式 — 生成器模式 (Builder)