R数据科学-第九章使用lubridate处理日期和时间

2023-11-20

本章将会使用以下三个包:

> library(tidyverse)
> library(lubridate)
> library(nycflights13)

一、创建日期或时间

表示日期或时间的数据有三种:

日期:在tibble中显示为date。

时间:一天中的某个时刻,在tibble中显示为<time>。

日期时间:可以唯一标识某个时刻(通常精确到秒)的日期加时间,在tibble中显示为<dttm>。

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

> today()
[1] "2021-11-09"
> now()
[1] "2021-11-09 12:26:29 CST"

以下有三种方法可以创建日期或时间:

1.通过字符串创建

如果确定了各个组成部分的顺序,那么这些函数可以自动将字符串转换为日期时间格式。

使用这些函数之前需要先确认年月日的排列顺序,然后按照同样的顺序排列y,m,d。

> ymd("2021-11-09")
[1] "2021-11-09"
> mdy("Nov 9th,2021")
[1] "2021-11-09"
> dmy("09-11-2021")
[1] "2021-11-09"

这些函数也可以接受不带引号的数值:

> ymd(20211109)
[1] "2021-11-09"
> mdy(11092021)
[1] "2021-11-09"
> dmy(09112021)
[1] "2021-11-09"

如果想要创建日期时间型数据,可以在ymd后面加一个下划线,再加入h,m,s的一个或多个字母。

> ymd_hms("2021-11-09 12:34:17")
[1] "2021-11-09 12:34:17 UTC"
> mdy_hm("11/09/2021 12:34")
[1] "2021-11-09 12:34:00 UTC"

通过添加一个时区参数,可以将日期强制转化为日期时间型数据:

> dmy(09112021,tz="UTC")
[1] "2021-11-09 UTC"

2.通过各个成分创建

除了单个字符串,日期时间数据的各个成分还经常分布在表格的多列,例如航班数据:

> flights %>% select(year,month,day,hour,minute)
# A tibble: 336,776 x 5
    year month   day  hour minute
   <int> <int> <int> <dbl>  <dbl>
 1  2013     1     1     5     15
 2  2013     1     1     5     29
 3  2013     1     1     5     40
 4  2013     1     1     5     45
 5  2013     1     1     6      0
 6  2013     1     1     5     58
 7  2013     1     1     6      0
 8  2013     1     1     6      0
 9  2013     1     1     6      0
10  2013     1     1     6      0
# ... with 336,766 more rows

可以使用make_date函数创建日期数据,make_datetime函数创建日期时间:

> flights %>% select(year,month,day,hour,minute) %>% mutate(departure=make_datetime(year,month,day,hour,minute))
# A tibble: 336,776 x 6
    year month   day  hour minute departure          
   <int> <int> <int> <dbl>  <dbl> <dttm>             
 1  2013     1     1     5     15 2013-01-01 05:15:00
 2  2013     1     1     5     29 2013-01-01 05:29:00
 3  2013     1     1     5     40 2013-01-01 05:40:00
 4  2013     1     1     5     45 2013-01-01 05:45:00
 5  2013     1     1     6      0 2013-01-01 06:00:00
 6  2013     1     1     5     58 2013-01-01 05:58:00
 7  2013     1     1     6      0 2013-01-01 06:00:00
 8  2013     1     1     6      0 2013-01-01 06:00:00
 9  2013     1     1     6      0 2013-01-01 06:00:00
10  2013     1     1     6      0 2013-01-01 06:00:00
# ... with 336,766 more rows

对flights的四个时间列(arr_time,dep_time,sched_dep_time,sched_arr_time)进行相同的操作。我们先对与time有关变量做处理,通过模运算将小时成分与分钟成分分离:


                
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R数据科学-第九章使用lubridate处理日期和时间 的相关文章

随机推荐

  • RSA公钥每次签名得到的结果都一样?

    这里记录下 RSA对于同一数据块签名一致的原因是使用的填充算法 涉及PKCS 1 5 PSS 为什么RSA公钥每次加密得到的结果都不一样 RSA PSS数字签名算法
  • nginx的sticky模块

    Sticky工作原理 Sticky是nginx的一个模块 它是基于cookie的一种nginx的负载均衡解决方案 通过分发和识别cookie 来使同一个客户端的请求落在同一台服务器上 默认标识名为route 1 客户端首次发起访问请求 ng
  • neo4j windows图像界面 如何查询最短路径

    MATCH p1 concept name factor p2 concept name cf4 p allshortestpaths p1 10 p2 RETURN p 注意上述p1是变量这个是通用的 只需要更改concept这个即可 你
  • 使用Notepad++工具查看文件的十六进制

    最近在用notepad 打开 dat文件 想看看里面的一些数据但是打开之后发现是乱码 下面给出解决方法 1 首先打开 dat文件 发现是一些乱码 2 点击 插件 gt 搜索hex gt 找到HEX Editor勾选 gt 安装 3 重新打开
  • stm32对flash的读写保护与解除

    一 STM32对内部Flash的保护措施 所有STM32的芯片都提供对Flash的保护 防止对Flash的非法访问 写保护和读保护 1 读保护即大家通常说的 加密 是作用于整个Flash存储区域 一旦设置了Flash的读保护 内置的Flas
  • Nginx跨域配置

    一 跨域概述 1 1 同源策略 同源策略是一个安全策略 同源 指的是协议 域名 端口相同 浏览器处于安全方面的考虑 只允许本域名下的接口交互 不同源的客户端脚本 在没有明确授权的情况下 不能读写对方的资源 同源策略主要是基于如下可能的安全隐
  • 解决labelImg闪退问题

    问题 打开labelImg按下键盘任意键闪退 解决办法 降低python版本 博主将python版本从3 10降低至3 8 并且重新安装了pyqt5 sip和lxml两个包即可正常使用labelImg
  • 03LinuxC线程学习之线程共享和非共享

    1 线程共享和非共享 1 1 线程共享资源 1 文件描述符表 由于线程间共享进程间的内容 而文件描述符表在主线程的PCB当中 各个线程可以直接去请求访问 所以线程间通信就不需要像进程那样通过管道这些方式通信 2 每种信号的处理方式 即当某个
  • js解决浏览器,SpeechSynthesis不能正常合成中文语音

    工作中遇到 浏览器不能合成语音 解决思路 合成失败时 循环合成列表 找到能正常合成的为止 对于一直不能合成的浏览器 设置开关 关闭循环功能
  • 服务器系统安装蓝牙驱动,安装蓝牙设备 - Windows drivers

    安装蓝牙设备 05 29 2020 本文内容 重要 本主题面向程序员 如果你是遇到蓝牙设备安装问题的客户 请参阅 在 Windows 中配对蓝牙设备 蓝牙配置文件驱动程序有两种安装类型 远程设备的 客户端安装 远程设备在该远程设备上公布其服
  • vc6.0 c语言加油站,第2章 C语言初探:4、在VC6.0下运行C语言程序

    不管你是否决定使用C Free 都建议阅读 在C Free下运行C语言程序 文中讲到了几个重要概念 对初学者大有裨益 Visual C 6 0简称VC或者 VC6 0 确实有点老了 在XP Win7下都可能会存在兼容性问题 在Win8下根本
  • 图解GitHub和SourceTree入门教程

    http blog csdn net collonn article details 39259227
  • 想去游戏公司做游戏,最重要的是什么素养?

    首先 要学会沟通 话说 动过去游戏公司的念头 做游戏 感觉很酷 但是 想想自己一不会编程 二不会画画 做策划 那好像是两边受气里外不是人出事第一个背锅的角色 想想也就想想 不过正好前些天我们发过一篇讲去日本学游戏的文章 说不定能派上用场 前
  • 华为OD机试真题- 学校的位置【2023Q1】【JAVA、Python、C++】

    题目描述 为了解决新学期学生暴涨的问题 小乐村要建所新学校 考虑到学生上学安全问题 需要所有学生家到学校距离最短 假设学校和所有的学生家 走在一条直线上 请问 学校要建在什么位置 能使得学校到各个学生家的距离之和最短 输入描述 输入的第一行
  • sql语句中的空值(null)

    含null值的表达式都为null null null 在判断某个数是否为null的时候不是用等号来表示 而是用 is null 在过滤的时候 可以使用in null 但是使用not in null的时候会报错 因为in函数 是指满足里面的情
  • java入门的第一个程序代码 hello world

    很多人说 学Java真的很难 其实 这是真的 但是高薪之所以为高薪 就是因为它比普通的活难的多 今天是我第一篇的博客 我还是想鼓励想学java技术的小伙伴一起来学 很多事只有去做了 你才能知道自己能不能成功 好了 接下来看Java入门的第一
  • 网易云音乐财报解读:收入大增亏损收窄,“云村”草长莺飞

    独家版权时代结束后 在线音乐产业进入了新的发展阶段 各家音乐平台经营状况备受关注 2月23日 网易云音乐公布了2022年全年财务业绩 财报显示 网易云音乐2022年全年收入为90亿元 较2021年同比增长28 5 值得一提的是 得益于盈利能
  • 数组的一些简单操作,列表改数组,数组合并,数组存取

    数组的简单操作 总用的一些操作 记录一下 要不总忘 1列表改数组 import numpy as np a 1 2 3 4 a np array a 输出a array 1 2 3 4 2数组合并 延竖轴拼接数组 aa np vstack
  • hive中取最大值最小值的函数

    max 和min 函数 select a max b from t group by a select a min b from t group by a max和min函数是取某一列中的最大或者最小值 greatest 和least 函数
  • R数据科学-第九章使用lubridate处理日期和时间

    本章将会使用以下三个包 gt library tidyverse gt library lubridate gt library nycflights13 一 创建日期或时间 表示日期或时间的数据有三种 日期 在tibble中显示为date