文章目录
- 1.日期数据格式表示
- 2.相关函数
- (1)生成当前日期
- (2)指定日期输出格式
- (3)时间间隔计算
日期型数据在我们处理时间数据时十分重要,本文简要介绍了R中日期数据的基本处理方法。
1.日期数据格式表示
R中日期数据常以字符串的形式输入,通过as.Date()函数将其转换为日期型数据,其语法为:
as.Date(x,“input_format”)
- x为输入的日期,是字符串类型
- “input_format"为读入日期的格式,默认为"yyyy-mm-dd”
R中日期的格式表示如下:
在输入时,x的格式应与input_format中的格式相同。示例如下:
date1<-as.Date("2021/02/15","%Y/%m/%d")
date1
[1] "2021-02-15"
date2<-as.Date("15-02-21","%d-%m-%y")
date2
[1] "2021-02-15"
2.相关函数
(1)生成当前日期
R中有两个函数可以返回当前日期:
Sys.Date() 返回当天日期
date() 返回当前日期和时间
示例如下:
Sys.Date()
[1] "2022-07-29"
date()
[1] "Fri Jul 29 11:38:46 2022"
值得注意的是,用date()返回得到的日期结果是一个字符串类型数据,不是日期型数据。
(2)指定日期输出格式
R中返回的日期格式可能并不是我们想要的,此时我们可通过format()函数来指定日期输出的格式:
format(x,“out_format”)
- x为一个日期型数据
- out_format为需要输出的日期格式
示例如下:
date1<-Sys.Date()
format(date1,"%y/%m/%d") #指定格式为yy-mm-dd
[1] "22/07/29"
format(date1,"%A") # 返回当天所在星期数
[1] "星期五"
(3)时间间隔计算
我们可以采用difftime()函数来计算时间间隔:
difftime(endtime,starttime,units = c(“auto”, “secs”, “mins”, “hours”, “days”, “weeks”))
- endtime,starttime分别表示最终和最初时间,我们计算的时间间隔为endtime-starttime,二者可以为date型或date-time型数据。
- units可以设置按秒、分钟、小时、天或星期计算时间间隔。
示例如下:
d1<-as.Date("2022-05-26")
d2<-Sys.Date()
difftime(d2,d1,units="auto") # auto则自动按天计算
Time difference of 64 days
difftime(d2,d1,units="weeks") # 按周计算
Time difference of 9.142857 weeks