R语言基础入门(8)之日期时间

目录

1.日期和日期时间类型

2.从字符串生成日期数据

3.日期显示格式

4.访问日期时间的组成值

5.日期舍入计算

 6.日期计算

 6.1 时间长度

 6.2 时间周期

 6.3 时间区间

7.基本 R 软件的日期功能

7.1 生成日期和日期时间型数据

7.2 取出日期时间的组成值

7.3  日期计算

练习


1.日期和日期时间类型

        R 中日期可以保存为 Date 类型,一般用整数保存,数值为从 1970-1-1 经过的天
数。
        R 中用一种叫做 POSIXctPOSIXlt 的特殊数据类型保存日期和时间,可以仅包含日期部分,也可以同时有日期和时间。技术上,POSIXct 把日期时间保存为从 1970 年 1 月 1 日零时到该日期时间的时间间隔秒数,所以数据框中需要保存日期时用 POSIXct 比较合适,需要显示时再转换成字符串形式;POSIXlt 把日期时间保存为一个包含年、月、日、星期、时、分、秒等成分的列表,所以求这些成分可以从 POSIXlt 格式日期的列表变量中获得。日期时间会涉及到所在时区、夏时制等问题,比较复杂。
        基础的 R 用 as.Date()as.POSIXct() 等函数生成日期型和日期时间型,R 扩展包 lubridate 提供了多个方便函数,可以更容易地生成、转换、管理日期型和日期时间型数据。

载入扩展包的方式:

library(lubridate)

如果下面内容:

证明你没有安装此扩展包

此时需要安装扩展包,安装方式如下:

点击【程序包】,再点击【安装程序包】

 

然后,找到 China(Beijing 2)

然后找到需要安装的扩展包 lubridate 

 然后,点击【确定】即可,安装完成会出现如下内容

这次我们再此载入扩展包 lubridate 

2.从字符串生成日期数据

        函数 lubridate::today() 返回当前日期

today()

返回:

        函数 lubridate::now() 返回当前日期时间

now()

返回:

在结果中,我们看到了 CST 字样,CST 是时区,这里使用了操作系统提供的当前时区。CST 不是一个含义清晰的时区,在不同国家对应不同的时区,在中国代表中国标准时间(北京时间)

        用 lubridate::ymd(), lubridate::mdy(), lubridate::dmy() 字符型向量转换为日期型向量,但是他们的输入方式不相同,y 表示m 表示d 表示,如:
        年 - 月 - 日
ymd(c("2022-1-24","2022-01-24"))

返回:

        月 - 日 - 年

mdy(c("1-24-2022", "01-24-2022"))

返回:

        日 - 月 - 年: 

dmy(c("24-1-2022","24-01-2022"))

返回:

如果在年号只有两位数字时,默认对应到 1969-2068 范围。

        lubridate::make_date(year, month, day) 可以从三个数值构成日期向量。如
make_date(2022, 1, 24)

返回:

        lubridate 包的 ymd、mdy、dmy 等函数添加 hms、hm、h 等后缀,可以用于将字符串转换成日期时间。如
ymd_hms("2022-1-24 19:26:35")

返回:

结果显示中 UTC 是时区,UTC 是协调世界时 (Universal Time Coordinated) 英文缩写,是由国际无线电咨询委员会规定和推荐, 并由国际时间局 (BIH) 负责保持的以秒为基础的时间标度。UTC 相当于本初子午线 (即经度 0 度) 上的平均太阳时,过去曾用格林威治平均时 (GMT) 来表示. 北京时间比 UTC 时间早 8 小时,以 1999 年 1 月 1 日 0000UTC 为例,UTC 时间是零点,北京时间为 1999 年 1 月 1 日早上 8 点整。
Date()as.DateTime()ymd() 等函数中,可以用 tz= 指定时区,比如北京时间可指定为 tz="Etc/GMT+8" 或 tz="Asia/Shanghai"。
        lubridate::make_datetime(year, month, day, hour, min, sec) 可以从最多六个数值组成日期时间,其中时分秒缺省值都是 0。如
make_datetime(2022, 1, 24, 19, 32, 36)

返回:

        用 lubridate::as_date() 可以将日期时间型转换为日期型,如

as_date(as.POSIXct("2022-01-24 19:32:36"))

返回:

        用 lubridate::as_datetime() 可以将日期型数据转换为日期时间型,如

as_datetime(as.Date("2022-01-24"))

返回:

3.日期显示格式

        用 as.character() 函数把日期型数据转换为字符型, 如
x <- as.POSIXct(c('2022-1-24', '2022-01-24'))
as.character(x)

返回:

        在 as.charact

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值