《R数据科学实战:工具详解与案例分析 》 —2.4.4 guess_formats/parse_date_time—时间日期格式

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

2.4.4 guess_formats/parse_date_time—时间日期格式分析

当遇到使用英文月份简写的日期,比如24 Jan 2018/Jan 24,或者其他更糟糕的情况时,如果使用传统的baseR中的函数,诸如strptime或是format之类,那么用户可能会浪费很多时间去猜测和组装正确的日期时间格式,因为只有顺序和格式都正确的时候,baseR中提供的相应函数才可以正确解析日期时间,否则就会不停地返回NA值。幸运的是,guess_formats和parse_date_time两个函数的存在,完全颠覆了以往的解析模式,从而使得这一过程变得简单有趣。

使用这两个函数解析日期时间的大体思路具体如下。

1)执行guess_formats函数以用于猜测需要解析对象的可能日期时间顺序及格式,用户必须指定可能存在的格式顺序。

2)复制guess_formats函数的返回结果。

3)执行parse_date_time,并将复制的内容以字符串向量的格式传参给函数。

4)若遇到解析不成功或不彻底的情况,则需要手动组建日期时间格式(组件列表请参看表2-24),并加入到guess_formats中的order参数中。

下面的代码简要解释了guess_formats和parse_date_time两个函数配合使用以解析日期时间的流程。首先生成一个名为example_messyDate的练习字符串向量,然后对该向量运行guess_formats,第二位参数orders中包含了可能存在的日期时间格式,并函数的返回结果中会报告匹配的顺序格式,并将报告结果复制到parse_date_time的第二位参数中。至此解析成功。

> example_messyDate <- c("24 Jan 2018",1802201810)

> guess_formats(example_messyDate,c("mdY", "BdY", "Bdy", "bdY", "bdy","dbY","dmYH"))

##        dObY       dOmYH        dmYH

## "%d %Ob %Y" "%d%Om%Y%H"  "%d%m%Y%H"

> parse_date_time(example_messyDate,orders = c("dObY","dOmYH","dmYH"))

## [1] "2018-01-24 00:00:00 UTC" "2018-02-18 10:00:00 UTC"

表2-24 日期时间组组成部分解释

image.png

image.png

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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