日期值

  • as.Date()

日期值通常以字符串的形式输入到 R 中,利用 as.Date()转化为以数值形式存储的日期变量

as.Date(x,"input_format")

x:字符型数据

input_format:读入日期的适当格式

符号    含义    示例
%d    数字表示的日期(0~31)0~31
%a    缩写的星期名    Mon
%A非缩写星期名    Monday    
%m    月份(00-12    )00-12
%b    缩写的月份    Jan    
%B    非缩写月份    January
%y    两位数的年份    07
%Y    四位数的年份    2007

#默认格式yyyy-mm-dd
> mydates <- as.Date(c("2017-06-22","2004-02-13"))

> strDates <- c("01/05/1965","08/16/1975")
> dates <- as.Date(strDates,"%m/%d/%Y")               #告诉R,strDates读入的格式是什么,此例是"%m/%d/%Y",转化为默认的格式yyyy-mm-dd
> dates
[1] "1965-01-05" "1975-08-16"

 

  • Sys.Date()、date()
> Sys.Date()           #当前的日期
[1] "2017-07-20"    
> date()               #当前的日期和时间
[1] "Thu Jul 20 10:51:49 2017"

 

  • format()

输出指定格式的日期值

format(x,format="output_foramt")

x:日期参数

format:指定输出的格式

> today <- Sys.Date()
> today
[1] "2017-07-20"
> format(today,format="%B %d %Y") #指定输出格式为非缩写月份,数字,四位数年份
[1] "七月 20 2017"
> format(today,format="%b")       #指定输出格式为缩写的月份
[1] "7月"

 

  • difftime()

计算时间间隔,并以星期、天、时、分、秒来表示

#将时间相减,计算两个的天数
> startdate <- as.Date("2004-02-13")
> enddate <- as.Date("2011-01-22")
> days <- enddate-startdate
> days
Time difference of 2535 days

#通过difftime()函数来计算间隔
> days1 <-difftime(enddate,startdate,units = "weeks")    #计算间隔并且以周显示
> days1
Time difference of 362.1429 weeks

> days2 <-difftime(enddate,startdate,units = "hours")    #以小时显示
> days2
Time difference of 60840 hours

> days3 <-difftime(enddate,startdate,units = "minutes")  #以分显示
#报错参数的格式不对哦,正确应该如下
#Error in match.arg(units) : 
#  'arg'应当是“auto”, “secs”, “mins”, “hours”, “days”, “weeks”其中的一个  
> days3 <-difftime(enddate,startdate,units = "mins")
> days3
Time difference of 3650400 mins

> days4 <-difftime(enddate,startdate,units = "secs")     #以秒显示
> days4
Time difference of 219024000 secs

查看更多的日期、时间格式的知识:help(ISOdatetime)

lubridate包:含许多简化日期处理的函数,识别和解析日期-时间数据,抽取日期-时间成分(例如年、月、日)以及日期-时间的算术运算

timeDate包:提供大量日期处理函数,同时处理多个时区,并提供复杂的日历操作功能,支持工作日、周末以及假期

 

 

转载于:https://my.oschina.net/u/1785519/blog/1563049

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值