Class 04 - 日期时间格式

news2024/12/26 11:08:25

Class 04 - 日期时间格式

  • R语言中的日期和时间格式
    • tidyverse 和 lubridate 功能包简介
      • tidyverse 简介
      • lubridate 简介
    • 加载 tidyverse 和 lubridate 功能包
    • 处理日期和时间
      • 日期时间的格式
      • 获取当前的日期 today()
      • 获取当前的时间 now()
    • 字符串格式转换为日期格式
      • ymd()
      • mdy()
      • dmy()
      • 字符串格式转换为日期时间格式
    • 时间戳转换为日期 as.POSIXct()
    • 获取日期时间中的 年、月、日等数值
      • 获取年份的数值 year()
      • 获取月份的数值 month()
      • 获取日的数值 day()
      • 获取小时的数值 hour()
      • 获取分钟的数值 minute()
      • 获取秒的数值 second()
      • 在日期+时间中提取日期数据 as_date()

R语言中的日期和时间格式

在这一节中,我们将学习和了解到如何在R中使用tidyverse 功能包 和lubridate 功能包来处理日期和时间类型的数据。接下来,我们将使用 tidyverse 包 和 lubridate 功能包中的工具将R语言中的不同类型的数据转换为日期格式和日期+时间的格式。

tidyverse 和 lubridate 功能包简介

tidyverse 简介

tidyverse是一个用于R语言中的函数式编程环境,它提供了多种用于数据整理、分析和可视化的函数,可以帮助R语言用户快速进行数据清洗、整理、分析和可视化,提高数据处理效率。它涵盖了数据清洗、数据分析、数据可视化等多个方面,包括data.framelmdplyrggplot2muthaplot等函数,使得数据处理更加便捷、高效。

lubridate 简介

lubridate 是一个功能强大的日期和时间处理包,可以在R语言中轻松解析、操作和处理日期和时间数据。它支持多种日期格式,包括ISO 8601CSVExcelOS X 10.4POSIX等,并且可以与其他R包(如dplyrtidyr等)无缝集成,方便地处理结构化数据。lubridate还提供了灵活的函数,可以方便地解析、比较和操作日期和时间数据,例如parse_datedifftimestrptimestrftime等。通过使用lubridate,您可以轻松地解决日期和时间相关的问题,如日期计算、时间比较、时区转换等。

加载 tidyverse 和 lubridate 功能包

在开始处理日期和时间之前,应该同时加载tidyverse和润滑油。lubridatetidyverse的一部分。

第一步:下载安装功能包
首先打开RStudio,我们先来使用install.packages()函数来安装tidyverselubridate 这两个功能包。(如果你已经安装过了就可以跳过这一步)

# 安装 tidyverse 和 lubridate 功能包
# 安装 tidyverse
install.packages('tidyverse')
# 安装 lubridate
install.packages('lubridate')

在这里插入图片描述

tips由于tidyverse是一个多功能的继承包,所以再安装的时候会下载安装很多功能,不用担心,只需要等待程序自己安装完成就OK了。

第二步,加载功能包

当工具包都安装完成后,我们接下来就是要如何使用这两个功能包了。当要使用某一个功能包里的函数的时候,我们需要用library()函数来加载这个功能包,才能够在之后的代码中去调用里面的功能函数。如我们已经安装完成并要使用的tidyverselubridate 这两个包。

# 加载 tidyverse
library(tidyverse)
# 加载 lubridate
library(lubridate)

在这里插入图片描述
当运行代码后,R语言程序就完成了加载。

当遇到如上图的报错的时候,可以参考 https://conflicted.r-lib.org/ 中的解决方案。

其实如果不纠结报错的话,不用理会也行,只是有冲突,并不是用不了)。

如果没有提示报错,那么你就可以放心使用了。

处理日期和时间

我们先来介绍R中日期和时间的数据类型,以及如何将字符串转换为日期+时间格式。

日期时间的格式

R语言中,日期时间格式有三种,

  • 日期格式 (“2016-08-16”)

  • 时间格式 (“20:11:59")

  • 日期+时间 的格式 (“2018-03-31 18:15:48”)

获取当前的日期 today()

当你需要获取今天的日期时,可以用函数today()来得到今天的日期,返回日期格式数据(年-月-日)。(提示:是从你当前电脑的时间中来获取的,如果电脑的日期是错的,那么获取的日期也就不对了。

# 获取当前日期
today()

在这里插入图片描述

获取当前的时间 now()

要获得当前日期+时间,可以运行now()函数。请注意,时间显示精确到秒。

# 获取当前日期
now()

在这里插入图片描述

字符串格式转换为日期格式

在平时工作中,日期时间数据很多时候是以字符串形式出现,在处理数据时需要先把字符串格式转换为日期格式。这时候我们可以使用lubridate 提供的工具将字符串转换为日期和日期时间。这些工具会自动计算出日期时间格式。

首先,要确定年、月、日在日期中出现的顺序。然后,根据不同的顺序格式来用不同的函数来转换格式。

ymd()

例如 : 对于字符格式为2023-05-15的时候,可以使用函数ymd()

# 转换为日期格式
ymd("2023-05-15")

在这里插入图片描述
运行该函数后,R会以yyyy-mm-dd格式返回日期格式。

例如 : 对于字符格式为20230520的时候,可以使用函数ymd()

# 转换为日期格式
ymd(20230520)

在这里插入图片描述

mdy()

例如 : 对于字符格式为May 20th 2023的时候,可以使用函数mdy()

# 转换为日期格式
mdy("May 20th 2023")

在这里插入图片描述

dmy()

例如 : 对于字符格式为15-May-2023的时候,可以使用函数dmy()

# 转换为日期格式
dmy("15-May-2023")

在这里插入图片描述

字符串格式转换为日期时间格式

ymd()dmy() , mdy() 函数的变体ymd_hms(),dmy_hms(),mdy_hms() 创建日期。

# 转换为日期+时间格式
ymd_hms("2023-03-15-06-35-59")
dmy_hms("15-03-2023-06-35-59")
mdy_hms("03-15-2023-06-35-59")

在这里插入图片描述

时间戳转换为日期 as.POSIXct()

在工作中有时候数据库中导出的日期时保存为1992562988这样的一串数字,通常我们都把这种格式称为时间戳格式,这时候需要通过特定的转码工具把这种格式转为日期时间就可以了。

# 定义一个时间戳格式数据
z <- 1992562988
# 转为时间日期格式
as.POSIXct(z, origin = "1960-01-01") 

在这里插入图片描述
tips:

  • 通常时间戳格式都是一串十位的数字组成。
  • 但有时会遇到多十一位数字的,如果直接当成时间戳的格式去处理会报错。
  • 其实十一位的一般都是在十位的基础上后面多了加一个0,只要把0去掉就可以正常转换了。
  • (简单的方法可以通过/10,或者去掉最后一个字符来处理)


获取日期时间中的 年、月、日等数值

前面已经完成了把字符串格式的时间格式,转换为日期时间的数据类型。

为什么要进行这个转换呢?

因为对于日期时间的数据类型有专有的提取其中数值的函数。

比如当你只需要日期中的年份的时候可以用year()函数直接提取出来年的值。

下面我们来介绍year(),month(),day(),hour(),minute(),second()这几个函数,分别用来单独提取日期时间中的小时分钟秒钟的数值。

获取年份的数值 year()

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
year(x)

在这里插入图片描述

获取月份的数值 month()

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
month(x)

在这里插入图片描述

获取日的数值 day()

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
day(x)

在这里插入图片描述

获取小时的数值 hour()

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
hour(x)

在这里插入图片描述

获取分钟的数值 minute()

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
minute(x)

在这里插入图片描述

获取秒的数值 second()

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
second(x)

在这里插入图片描述

在日期+时间中提取日期数据 as_date()

R中还可以直接从日期时间中提取出来日期数据

# 定义一个变量,把字符串转换为日期时间数据类型
x <- ymd_hms("2023-03-15-06-35-59")
# 从中提取年份
as_date(x)

在这里插入图片描述

更多的资料:

如果想要了解更多的R语言中关于处理日期时间的函数,
可以浏览 lubridate 的官方文档 https://lubridate.tidyverse.org/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AlmaLinux 9.2 正式版发布 - RHEL 兼容免费发行版

AlmaLinux 9.2 正式版发布 - RHEL 兼容免费发行版 由社区提供的免费 Linux 操作系统&#xff0c;RHEL 兼容发行版。 请访问原文链接&#xff1a;https://sysin.org/blog/almalinux-9/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sys…

一个胖乎乎的3D卡片(有点像捏扁的圆柱体)

先上效果图&#xff08;图片是随机的&#xff0c;可能你们看到的和这个不一样。但效果是相同的&#xff09;&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Titl…

飞浆AI studio人工智能课程学习(1)-大模型时代优质Prompt

文章目录 大模型时代&优质PromptAl生成技术价值概览开始构建你的优质prompt 近十年深度学习模型主要更迭为什么大模型能够有如此强大的表现力大模型与Prompt例1&#xff1a; 画一幅画&#xff0c;呆萌的小猫躺在大泡泡中例2&#xff1a;请生成一张统计图&#xff0c;内容为…

apk自动签名工具

序言 因为360加固&#xff0c;自动签名需要开通VIP&#xff0c;每次加固完了都得手动签名。所以写了个工具。实现通过配置文件配置&#xff0c;拖拽APK自动签名。 支持&#xff1a;V1 V2 V3 V4 签名。通过分析清单文件&#xff0c;自动选择版本。 效果 使用 1.下载jar包 au…

实验室检验系统源码,集检验业务、质量控制、报告、统计分析、两癌等模块于一体

云 LIS 系统针对区域化 LIS 而设计&#xff0c;依托底层云架构&#xff0c;将传统的 LIS 功能模块进行“云化”。 该系统是集检验业务、科室管理、质量控制、报告、统计分析、两癌等模块于一体的数据检验信息平台。通过计算机联网&#xff0c;实现各类仪器数据结果的实时自动接…

新库上线 | CnOpenData舆情云数据

舆情云数据 一、数据简介 网络舆情监测数据是决策者进行数据分析和决策处置的基础。舆情云数据覆盖81000 网站、5600 论坛、1000 平面媒体、2500万 微信账号、3亿 微博账号、300 网络视频、17000 境外媒体、1400万 自媒体账号、2500 新闻客户端、170 电视台 &#xff0c;数据来…

图神经网络:(大型图的有关处理)在Pumbed数据集上动手实现图神经网络

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 Pumed数据集文献阅读继续实验 Pumed数据集 导库 from torch_…

【day2】单片机

目录 【1】GPIO 1.定义 2.应用 I - Input - 输入采集 O - Output - 输出控制 ​编辑 3.GPIO结构框图 4.功能描述 输入功能 输出功能 5.相关寄存器 【2】点亮一盏LED灯 1.实验步骤 2.编程实现 3.编译下载 4.复位上电 练习&#xff1a;实现LED灯闪烁 练习…

Linux - 第15节 - 网络基础(应用层)

1.再谈 "协议" 1.1.协议的概念 协议&#xff0c;网络协议的简称&#xff0c;网络协议是通信计算机双方必须共同遵从的一组约定&#xff0c;比如怎么建立连接、怎么互相识别等。 为了使数据在网络上能够从源到达目的&#xff0c;网络通信的参与方必须遵循相同的规则&…

收集数据集以训练自定义模型的 5 种方法

来源&#xff1a;投稿 作者&#xff1a;王同学 编辑&#xff1a;学姐 在过去的十年中&#xff0c;深度学习技术在计算机视觉领域中的应用逐年增加。其中当属「行人检测」和「车辆检测」最为火爆&#xff0c;其原因之一就是「预训练模型」的「可复用性」。 由于深度学习技术在这…

Pandas+Pyecharts | 新冠疫情数据动态时序可视化

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 按月统计数据 &#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 疫情动态时序地图3.2 疫情动态时序折线图3.3 疫情动态时序柱状图3.4 疫情动态…

Maven中scope(作用范围)详解

目录 一、依赖传递二、依赖范围三、依赖范围对传递依赖的影响四、依赖调节五、可选依赖六、排除依赖七、依赖归类八、依赖管理 一、依赖传递 Maven 依赖传递是 Maven 的核心机制之一&#xff0c;它能够一定程度上简化 Maven 的依赖配置。 如下图所示&#xff0c;项目 A 依赖于…

黄牛为什么能抢走“五月天”的门票?

目录 “史上最难抢票”的五月天演唱会 黄牛为什么能抢到票 黄牛抢票带来哪些坏影响 售票平台为什么挡不住黄牛&#xff1f; 管理上如何有效防控黄牛 技术上如何有效防黄牛 相关技术产品推荐 随着文娱活动的复苏&#xff0c;大量黄牛“卷土袭来”。顶象防御云业务安全情报…

【音视频处理】MP4、FLV、HLS适用范围,在线视频播放哪个更好

大家好&#xff0c;欢迎来到停止重构的频道。 我们之前讨论过直播协议&#xff0c;本期我们讨论在线点播的视频格式。 也就是网络视频文件、短视频常用的格式 如MP4、FLV、HLS等。 我们将详细讨论在线点播场景下&#xff0c;这些视频格式的优劣以及原因。 我们按这样的顺序…

分享几个冷门但实用的网站!

今天给大家推荐几个冷门但实用的网站&#xff0c;免费又好用对于打工人来讲十分友好。 Img Cleaner https://imgcleaner.com/ 一个免费的AI智能图片去水印网站&#xff0c;不用注册登录就可以使用&#xff0c;而且操作也比较简单&#xff0c;上传图片之后调整画笔大小&#xf…

小黑子—Java从入门到入土过程:第十章 - 多线程

Java零基础入门10.0 Java系列第十章- 多线程1. 初识多线程2. 并发和并行3. 多线程的实现方式3.1 一&#xff1a;继承Thread类方式实现3.2 二&#xff1a;实现Runnable接口的方式实现3.3 三&#xff1a;利用Callable接口和Future接口方式实现 4. 多线程中常见的成员方法4.1 线程…

❤ Manifest version 2 is deprecated, and support will be removed in 2023. See..

❤谷歌插件开发遇到的问题 开发谷歌插件提示&#xff1a; ❤js 开发谷歌插件提示 提示 Manifest version 2 is deprecated, and support will be removed in 2023. See… 当导入到chrome&#xff0c;提示如下错误&#xff1a; Manifest version 2 is deprecated, and suppo…

物联网:智慧城市还要做的事情

摘要&#xff1a;本文简介关于智慧城市&#xff0c;还有哪些需要做的事情。 1.传统城市需要向智慧城市转型 传统的城市中心已被证明不足以满足社会当前和未来的各种需求&#xff0c;这增加了应用智慧城市理念的需求。智慧城市可以对健康、交通、休闲和工业等多个领域产生重大…

VLC可见光通信:2、高速LED驱动电路

背景 在VLC可见光通信中,需要高速的控制LED的通断,因此需要高速LED驱动电路。 文中出现的低压是指24V电压以下,中压是指24V~60V电压,高压是指60V ~ 160V。 低速是指500KHZ以下,高速是指2MHZ。 小功率是指20W以下,大功率指20W~100W。 低压小功率LED低速&高速:20W、…

你是时候拥抱chatgpt了

随着chatgpt热度不断上升&#xff0c;chatgpt已经广泛应用到各个行业了&#xff0c;很多人都感觉自己地位受到威胁&#xff0c;有人预测chatgpt会取代80%程序员的工作&#xff0c;我也用了chatgpt有几个月了&#xff0c;不得不说是真的牛逼。我甚至用它写了一个python的聊天脚本…