《R数据科学实战:工具详解与案例分析 》 —2.4.2 ymd/ymd_hms—年月日还是日月年?

举报
华章计算机 发表于 2019/11/09 20:15:59 2019/11/09
【摘要】 本节书摘来自华章计算机《R数据科学实战:工具详解与案例分析》 一书中第二章,第2.4.2节,作者刘 健 邬书豪 。

2.4.2 ymd/ymd_hms—年月日还是日月年?

一般情况下,ymd及其子函数可以完整地解析以数字或字符串形式出现的日期形式,只有当日期中对不同的成分以类似双引号作为分隔符的情况,或者是对象为奇数的情况时(详见代码演示),ymd等函数可能会无法直接进行解析,而是需要进行额外处理。ymd函数即代表年月日,ymd_hms函数则代表年月日时分秒。两类函数的参数名称、结构和位置完全一致,具体函数名称见表2-23。默认时区为世界标准时间UTC。表2-23中列出了两组函数所有的子函数。读者在解析时间时应当注意时区,因为北京时间比UTC早8个小时,所以是UTC+8。所有对象经过解析后都会输出为年月日(时分秒)的标准日期格式,并且类别为“Date”。

表2-23 lubridate包中日期格式解析主要函数一览

image.png

 

lubridate函数可以仅使用默认设置轻松解析偶数位的字符型向量,必须要注意的是,偶数位必须大于6位,否则会产生NA。在下列的代码中,“2018 1 2”因为其中存在空格,所以被默认解析为6位。同样的逻辑也适用于解析日期时间对象。参数tz用于设置时区,示例代码如下:

> library(lubridate)

> ymd(c(20180102, "2017-01-02","2018 1 2"))

## [1] "2018-01-02" "2017-01-02" "2018-01-02"

> dmy_h(c(1802201810,"20-10-2018 24"),tz = "Asia/Shanghai")

## [1] "2018-02-18 10:00:00 CST" "2018-10-21 00:00:00 CST"

小提示

如果函数没有自动解析正确的时区,那么读者可以使用Sys.timezone()或Olson-Names()来寻找正确的时区,并传参设置时区。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。