注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mobius-Band

 
 
 

日志

 
 

R语言数据处理--日期数据筛选  

2015-07-04 21:11:45|  分类: R |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
有时我们在处理时间数据时,需要对数据进行筛选,例如:需要筛选出某一年某一个月份的全部数据。这时就需要对日期进行筛选,以下介绍几种常用的日期数据筛选方法。
1、对DATE类和POSIX类的筛选
DATE类只能存储日期的年、月、日、星期、季度等信息;而POSIX类则可以存储更多的信息,如年、月、日、时、分、秒、时区、星期等。
  1. a=as.Date(Sys.time())
  2. b=as.POSIXct(Sys.time())
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 
可以看出POSIX类存储的信息确实要更多。
利用format()函数可以提取日期数据中的信息。
对于DATE类:
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 
对于POSIX类:
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 
然后利用format(date,format)便可以提取日期中相应的信息,例如:
提取年份:
  1. format(a,format = "%Y")
显示上午还是下午:
  1. format(b,format = "%p")
显示当地时区:
  1. format(b,format = "%z")
提取出信息后,我们可以利用正则表达式对我们所要的内容进行筛选,例如:我们想筛选出2009-01-10至2009-01-20直接的交易信息。
  1. DateApp=read.csv2(file = "R/DateApp.csv",header = T,stringsAsFactors=F,sep = ",")
  2. DateApp$ISE=as.numeric(DateApp$ISE)
  3. DateApp$date=as.Date(DateApp$date,format = " %d-%b-%y")
首先读入数据,由于数据以字符型储存,所以先对数据类型进行转换。
转换后的数据如下:
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 
现利用正则表达式筛选出我们所要的结果:
  1. DateApp[(format(DateApp$date,format = "%Y")=="2009"
  2.                &format(DateApp$date,format = "%m")=="01"
  3.                &as.numeric(format(DateApp$date,format = "%d"))>=10
  4.                &as.numeric(format(DateApp$date,format = "%d"))<=20),]
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 


2、利用xts类筛选
这是基于xts包下的类,对于筛选时间数据,进行时间序列分析非常方便。
对于刚才我们读入并转换好的数据DateApp,将其转换为xts类数据。
  1. library(xts)
  2. DateApp=as.xts(x = DateApp$ISE,order.by = DateApp$date,dateFormat = "DATE")
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 
转换后,DateApp已经成为一个xts类对象
此时,我们只需要提取我们想要的数据就行了,例如:我们想筛选出2009-01-10至2009-01-20直接的交易信息。
由于转换后变量名会消失,所以这里先给变量重命名,而这里日期已经不算一个变量,而是当做数据的ID,所以数据只剩下一个变量即“ISE”
  1. colnames(DateApp)=c("ISE")
  2. DateApp["2009-01-10/2009-01-20",]    #提取需要的数据
R语言数据处理--日期数据筛选 - Mobius-Band - Mobius-Band 
利用xts类提取数据比利用正则表达式筛选更为简单方便。
  评论这张
 
阅读(205)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018