赞
踩
目录
记录抽取,是指根据一定的条件对数据进行抽取,并缩减数据的范围与数量的方法,类似于Excel中的筛选功能。
在R语言中,可以通过向量化运算得到一组长度和数据框的行数相同的逻辑型序列,然后根据这个逻辑型序列的值,将TRUE对应位置的行保留并作为新的数据框返回,从而达到数据记录抽取的目的。
常用的抽取条件的烈性有指定值抽取、关键词抽取、数据范围抽取、时间范围抽取及组合条件抽取。
导入数据
- data = read.csv('C:/Users/ABC/Desktop/书籍源代码和配套资源/谁说菜鸟不会数据分析(R语言篇)--数据/第四章/4.4.2 记录抽取/记录抽取.csv',
- fileEncoding="utf8",
- stringsAsFactors=FALSE)
指定值抽取是指根据字段制定的值进行数据记录的抽取,制定的值可以是字符串也可以是数值,可以是单个值也可以是多个值。
在R语言中,指定单个值抽取可以使用1连等号“==”判断记录是否满足条件。例如,需要抽取商品品牌为台电的商品数据记录,代码如下。
fData = data[data$brand == "台电",]
在R语言中,指定多个值抽取可以使用%in%函数判断记录是否满足条件
例如,需要同时抽取商品品牌为“华为”,“小米”,“台电”的商品数据记录
fData = data[data$brand%in%c("华为","小米","台电"),]
关键词抽取是指抽取制定字段中包含制定关键词的数据记录。在R语言中使用grepl函数进行关键词抽取。
grepl(pattern,x,ignore.case = FALSE,fixed = FALSE)
例如,需要抽取商品标题包含关键词“平板”的商品数据记录,代码如下:
- #抽取商品标题包含关键词“平板”的商品数据记录
- fData = data[grepl('平板',data$title),]
例如抽取商品评论数大于10000的商品记录数据
- #抽取商品评论数大于10000的商品记录数据
- fData = data[data$comments > 10000,]
时间范围抽取,是指根据一定的时间范围条件对记录进行抽取。如果时间数据列为非时间型数据,则需要先将其转换为时间型数据再进行时间范围抽取,代码如下:
- #时间范围抽取
- #将ptime列转化为时间型数据
- data$ptime = strptime(
- data$ptime,
- format='%Y-%m-%d')
- )
- #先用strptime函数定义时间点,再按时间范围对数据进行筛选
- #定义时间点1,2015年01月01日
- dt1 = strptime('20150101',format='%Y%m%d')
- #定义时间点2,2015年12月31日
- dt2 = strptime('20151231',format='%Y%m%d')
- #获取介于两个时间点之间的数据
- fData = data[(data$ptime >= dt1)&(data$ptime <= dt2),]
组合条件抽取是指使用逻辑运算,将指定值抽取、关键词抽取、数据范围抽取、时间范围抽取等多种抽取条件灵活足额来抽取数据记录。常用的组合条件逻辑运算有,并且(&)、或者(|)、取反(!)。
例如,需要从商品数据记录中抽取评论数大于1000、小于或等于10000并且商品品牌为“小米”的商品数据记录。
- fData = data[
- (data$comments>=1000)
- &(data$comments<=10000)
- &(data$brand =='小米'),
- ]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。