搜索
查看: 650|回复: 0

[R] 慧美——R for data science. 第12章 使用lubridate处理日期和时间

[复制链接]

39

主题

40

帖子

289

积分

中级会员

Rank: 3Rank: 3

积分
289
发表于 2018-11-27 15:38:00 | 显示全部楼层 |阅读模式
R FOR DATA SCIENCE 第12章  使用lubridate处理日期和时间

12.1 简介
  • 如何在 R 中处理日期和时间。

  • 准备工作

    • lubridate 包,它可以使得 R 对日期和时间的处理更加容易。

    library(tidyverse)
    library(lubridate)
    library(nycflights13)
12.2 创建日期或时间
  • 日期:在 tibble 中显示为 <date>。
  • 时间:一天中的某个时刻,在 tibble 中显示为 <time>。
  • 日期时间:可以唯一标识某个时刻(通常精确到秒)的日期加时间,在 tibble 中显示为 <dttm>。

  • 需要处理时间数据,那么你可以使用 hms 包

  • 要想得到当前日期或当前日期时间,你可以使用 today() 或 now() 函数

  • 以下 3 种方法也可以创建日期或时间。

    • 通过字符串创建。
    • 通过日期时间的各个成分创建。
    • 通过现有的日期时间对象创建。


  • 通过字符串创建

    • 如果确定了各个组成部分的顺序,那么这些函数可以自动将字符串转换为日期时间格 式。要想使用这些函数,需要先确定年、月和日在日期数据中的顺序,然后按照同样的顺 序排列 y、m 和 d,这样就可以组成能够解析日期的 lubridate 函数名称。


  • 这些函数也可以接受不带引号的数值。要想创建日期时间型数据,可以在后面加一个下划线,以及 h、m 和 s 之中的一个或多个字母,这样就可以得到解析日期时间的函数了

  • 通过各个成分创建

    • 除了单个字符串,日期时间数据的各个成分还经常分布在表格的多个列中。
    • 可以使用 make_date() 函数创建日期,使用 make_datetime() 函数创建日期时间


  • 一天内的分布

  • 通过其他类型数据创建

    • 在日期时间型数据和日期型数据之间进行转换, as_datetime() 和 as_
      date() 函数的功能


12.3 日期时间成分
  • 获取成分

    • 如果想要提取出日期中的独立成分,可以使用以下访问器函数:year()、month()、mday() ( 一 个 月 中 的 第 几 天 )、yday()( 一 年 中 的 第 几 天 )、wday()( 一 周 中 的 第 几 天 )、hour()、minute() 和 second()
    • 对于month()和wday()函数,你可以设置label = TRUE来返回月份名称和星期数的缩写,还可以设置 abbr = FALSE 来返回全名


  • 设置成分

    • 使用每个访问器函数来设置日期时间中的成分:


12.4 时间间隔
  • 时期: 以秒为单位表示一段精确的时间。
  • 阶段: 表示由人工定义的一段时间,如几周或几个月。
  • 区间:表示从起点到终点的一段时间。

  • 时期

    • 表示时间差别的对象记录时间间隔的单位可以是秒、分钟、小时、日或周。 lubridate 提供了总是使用秒为单位的另一种计时对象——时期


  • 可以对时期进行加法和乘法操作, 时期可以和日期型数据相加或相减

  • 阶段

lubridate 提供了阶段对象。阶段也是一种时间间隔,但它不以秒为单位;相反,它使用“人工”时间,比如日和月。
  • 阶段可以和日期相加。与时期相比,阶段更容易符合我们的预期

  • 区间

    • 如果需要更精确的测量方式,那么你就必须使用区间。区间是带有起点的时期,这使得其非常精确,你可以确切地知道它的长度


  • 小结

    • 如果只关心物理时间,那么就使用时期;
    • 如果还需要考虑人工时间,那么就使用阶段;
    • 如果需要找出人工时间范围内有多长的时间间隔,那么就使用区间






上一篇:慧美——R for data science 第11章 使用forcats处理因子
下一篇:慧美——R for data science 第13章 使用magrittr进行管道操作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-9-18 20:29 , Processed in 0.028920 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.