lubridate包日期时间处理(日期、时间、日期时间、设置和获取时间、时期、阶段、区间)
1 创建日期时间
日期:在 tibble 中显示为 <date>。
时间:一天中的某个时刻,在 tibble 中显示为 <time>。
日期时间:可以唯一标识某个时刻(通常精确到秒)的日期加时间,在 tibble 中显示为<dttm>
想得到当前日期或当前日期时间,你可以使用 today() 或 now() 函数:
1 | today () |
1 | now () |
1.1通过字符串创建
1 | ymd ( "2022-03-09" ) |
1 | dmy ( "09-Mar-2022" ) |
1 | mdy_hm ( "03/09/2022 20:18" ) |
1.2 通过各个成分创建
加载tidyverde包出现错误:
重新安装rlang包:
此时重新加载:
筛选分布在表中的日期时间:
1 2 3 | flights %>% select (year, month, day, hour, minute) |
2 获取成分
1 2 3 | datetime <- ymd_hms ( "2022-03-09 20:30:56" ) year (datetime) #年份 |
1 | month (datetime) #月份 |
1 | mday (datetime) #一个月中的第几天 |
1 | yday (datetime) #一年中的第几天 |
1 | wday (datetime) #一周中的第几天 |
month() 和 wday() 函数,你可以设置 label = TRUE 来返回月份名称和星期数的缩写,还可以设置 abbr = FALSE 来返回全名:
1 | month (datetime, label = TRUE ) |
1 | wday (datetime, label = TRUE , abbr = FALSE ) |
2.1 设置成分
1 | (datetime <- ymd_hms ( "2022-03-09 20:39:56" )) |
1 2 3 | year (datetime) <- 2023 #修改年份 datetime |
1 2 3 | month (datetime) <- 01 #修改月份 datetime |
1 2 3 | hour (datetime) <- hour (datetime) + 2 #修改小时 datetime |
1 2 3 | update () 函数创建一个新日期时间: update (datetime, year = 2023, month = 3, mday = 2, hour = 2) |
如果设置的值过大,那么可以自动向后滚动:
1 2 3 | ymd ( "2021-03-01" ) %>% update (mday=30) |
3 时间间隔
时期:以秒为单位表示一段精确的时间。
阶段:表示由人工定义的一段时间,如几周或几个月。
区间:表示从起点到终点的一段时间。
3.1 时期
在R中,将两个日期相减:
1 2 3 | h_age <- today () - ymd (19961010) h_age |
1 | as.duration (h_age) |
可以使用很多方便的构造函数来创建时期:
1 | dseconds (15) |
1 | dminutes (10) |
1 | dhours ( c (12, 24)) |
1 | ddays (0:5) |
可以对时期进行加法和乘法操作:
1 | 2 * dyears (1) |
1 | dyears (1) + dweeks (12) + dhours (15) |
时期可以和日期型数据相加或相减:
1 2 3 | tomorrow <- today () + ddays (1) tomorrow |
1 2 3 | last_year <- today () - dyears (1) last_year |
3.2 阶段
阶段也是一种时间间隔,但它不以秒为单位;相反,它使用“人工”时间,比如日和月。
1 | seconds (15) |
1 | minutes (10) |
1 | hours ( c (12, 24)) |
1 | days (7) |
1 | months (1:6) |
1 | years (1) |
可以对阶段进行加法和乘法操作:
1 | 10 * ( months (6) + days (1)) |
1 | days (50) + hours (25) + minutes (2) |
阶段可以和日期相加:
1 | ymd ( "2020-02-02" ) + dyears (1) |
1 | ymd ( "2022-02-02" ) + years (1) |
3.3 区间
区间是带有起点的时期,这使得其非常精确,你可以确切地知道它的长度:
1 2 3 | next_year <- today () + years (1) next_year |
1 | ( today () %--% next_year) / ddays (1) |
本文来自博客园,作者:zhang-X,转载请注明原文链接:https://www.cnblogs.com/YY-zhang/p/15987070.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!