资源描述:
《R语言日期的表示和运算(详细总结).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.R语言日期的表示和运算(详细总结)1、取出当前日期Sys.Date()[1]"2014-10-29"date()#注意:这种方法返回的是字符串类型[1]"WedOct2920:36:072014"2、在R中日期实际是double类型,是从1970年1月1日以来的天数typeof(Sys.Date())[1]"double"3、转换为日期用as.Date()可以将一个字符串转换为日期值,默认格式是yyyy-mm-dd。as.Date("2007-02-01")#得到"2007-02-01",显示为字符串,但实际是用double存储的as.double(as.Date("1970-01-
2、01"))#结果为0,是从1970年1月1日以来的天数。可以把定制的日期字符串转换为日期型as.Date("2007年2月1日","%Y年%m月%d日")[1]"2007-02-01"格式意义%Y年份,以四位数字表示,2007%m月份,以数字形式表示,从01到12%d月份中当的天数,从01到31%b月份,缩写,Feb..%B月份,完整的月份名,指英文,February%y年份,以二位数字表示,074、把日期值输出为字符串today<-Sys.Date()format(today,"%Y年%m月%d日")[1]"2014年10月29日"5、计算日期差由于日期内部是用double存储的天数
3、,所以是可以相减的。today<-Sys.Date()gtd<-as.Date("2011-07-01")today-gtdTimedifferenceof1216days用difftime()函数可以计算相关的秒数、分钟数、小时数、天数、周数difftime(today,gtd,units="weeks")#还可以是“secs”,“mins”,“hours”,“days”Timedifferenceof173.7143weeks#日期型数据在R中自带的日期形式为:as.Date();以数值形式存储;对于规则的格式,则不需要用format指定格式;如果输入的格式不规则,可以通过form
4、at指定的格式读入;标准格式:年-月-日或者年/月/日;如果不是以上二种格式,则会提供错误;as.Date('23-2013-1')错误于charTo按照Date(x):字符串的格式不够标准明确>as.Date('23-2013-1',format='%d-%Y-%m')[1]"2013-01-23"格式意义%d月份中当的天数%m月份,以数字形式表示%b月份,缩写..%B月份,完整的月份名,指英文%y年份,以二位数字表示%Y年份,以四位数字表示#其它日期相关函数weekdays()取日期对象所处的周几;months()取日期对象的月份;quarters()取日期对象的季度;#POSIX
5、类ThePOSIXctclassstoresdate/timevaluesasthenumberofsecondssinceJanuary1,1970,whilethePOSIXltclassstoresthemasalistwithelementsforsecond,minute,hour,day,month,andyear,amongothers.POSIXct是以1970年1月1号开始的以秒进行存储,如果是负数,则是1970年以前;正数则是1970年以后。POSIXlt是以列表的形式存储:年、月、日、时、分、秒;mydate=as.POSIXlt(’2005-4-197:01:0
6、0’)names(mydate)默认情况下,日期之前是以/或者-进行分隔,而时间则以:进行分隔;输入的标准格式为:日期时间(日期与时间中间有空隔隔开)时间的标准格式为:时:分或者时:分:秒;如果输入的格式不是标准格式,则同样需要使用strptime函数,利用format来进行指定;#生成案例数据Dates<-c("2009-09-28","2010-01-15")Times<-c("23:12:55","10:34:02")charvec<-timeDate(paste(Dates,Times))timeDate(charvec)#取系统的时间Sys.timeDate()#一个月的第一
7、天timeFirstDayInMonth()#一个月的最后一天timeLastDayInMonth()#一周当中第几天dayOfWeek()#一年当中的第几天dayOfYear()Sys.Date()returnstoday'sdate.date()returnsthecurrentdateandtime.#printtoday'sdate..today<-Sys.Date()format(today,format="%B%d%Y")"June