R语言 使用lubridate处理日期和时间

R语言 使用lubridate处理日期和时间

在我们的日常生活中,日期和时间给人的第一印象是简单和容易的,因为我们在日常生活中与它们打交道。但是,当我们在R中与日期和时间对象一起工作时,就会有很多复杂的问题。

本文主要介绍使用R语言中的lubridate包来处理日期和时间。

install.packages("lubridate")

R中的数据/时间对象的类型

有三种类型的数据/时间对象,列举如下

  • Date (<data>)对象 – 打印日期。

  • Time (<time>)对象 – 打印时间。

  • Data-Time object (<dttm>)– 它是数据和时间的结合。

示例

R为我们提供了today()函数,我们可以用它来获取当前的数据。比如说。

# Include library
library("lubridate")

# Print the current date
print(today())

输出

[1] "2022-12-13"

正如你在输出中看到的,当前的日期已经显示出来了。

示例

R为我们提供的now()函数也可以打印出一个数据时间对象。让我们考虑下面的例子。

# Print the current date-time object
print(now())

输出

[1] "2022-12-13 16:25:31 IST"

正如你在输出中看到的,当前的日期和时间已经显示出来了。

使用一个字符串创建日期

lubridate库为我们提供了一些辅助函数,使用这些函数可以轻松地创建一个日期对象。这些函数在传递的字符串中的组件(DD, MM, YY)的排列方面彼此不同。让我们逐一讨论这些函数。

使用ymd()函数

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式的。YY MM DD。

示例

library("lubridate")
# Print the date in YY-MM-DD format
# Passed as YY-MM-DD in the string
ymd("2022-01-31")

输出

[1] "2022-01-31"

正如你在输出中看到的,日期被打印成YY-MM-DD格式。

使用mdy()函数

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。MM-DD-YY

示例

library("lubridate")

# Print the date in YY-MM-DD format
# Passed as MM-DD-YY in the string
mdy("01-31-2022")

输出

[1] "2022-01-31"

正如你在输出中所看到的,日期已被打印成YY-MM-DD格式。

使用dmy()函数

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式的。DD MM YY。

示例

library("lubridate")

# Print the date in YY-MM-DD format
# Passed as DD-MM-YY in the string 
dmy("31-01-2022")

输出

[1] "2022-01-31"

正如你在输出中看到的,日期被打印成YY-MM-DD格式。

使用一个字符串创建日期-时间

lubridate库为我们提供了其他辅助函数,使用这些函数我们可以轻松地创建一个日期时间对象。这些函数在传递的字符串中的组件(DD, MM, YY和HH, MM, SS)的安排方面彼此不同。让我们逐一讨论这些函数。

ymd_hms(date_time_string)

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。yy-mm-dd hh:mm:ss。

示例

# Include library
library("lubridate")

# Print the date-time in YY-MM-DD HH:MM:SS
# Passed as YY-MM-DD HH:MM:SS in the string 
ymd_hms("2022-01-31 22:10:10")

输出

[1] "2022-01-31 22:10:10 UTC"

正如你在输出中看到的,日期已被打印为YY-MM-DD HH:MM:SS格式。

ymd_hm(date_time_string)

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。yy-mm-dd hh:mm。

示例

# Include library
library("lubridate")

# Print the date-time in YY-MM-DD HH:MM
# Passed as YY-MM-DD HH:MM in the string 
ymd_hm("2022-01-31 22:10")

输出

[1] "2022-01-31 22:10:00 UTC"

正如你在输出中所看到的,日期已被打印成YY-MM-DD HH:MM格式。

mdy_hms(date_time_string)

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。MM DD YY

示例

# Include library
library("lubridate")

# Print the date-time in YY-MM-DD HH:MM:SS
# Passed as YY-MM-DD HH:MM:SS in the string 
mdy_hms("01-31-2022 22:10:10")

输出

[1] "2022-01-31 22:10:10 UTC"

正如你在输出中看到的,日期被打印成MM-DD-YY HH:MM:SS格式。

mdy_hm(date_time_string)

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。MM-DD-YY HH:MM

示例

# Include library
library("lubridate")

# Print the date-time in YY-MM-DD HH:MM
# Passed as YY-MM-DD HH:MM in the string 
mdy_hm("01-31-2022 22:10")

输出

[1] "2022-01-31 22:10:00 UTC"

正如你在输出中看到的,日期被打印成MM-DD-YY HH:MM格式。

dmy_hms(date_time_string)

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。dd-mm-yy hh:mm:ss。

示例

# Include library
library("lubridate")

# Print the date-time in DD-MM-YY HH:MM:SS
# Passed as DD-MM-YY HH:MM:SS in the string 
dmy_hms("31-01-2022 22:10:10")

输出

[1] "2022-01-31 22:10:10 UTC"

正如你在输出中看到的,日期已被打印成DD-MM-YY HH:MM:SS格式。

dmy_hm(date_time_string)

这个函数接受一个字符串作为输入,但要注意,所传递的字符串的成分必须是格式。dd-mm-yy hh:mm:ss。

示例

# Include library
library("lubridate")

# Print the date-time in DD-MM-YY HH:MM
# Passed as DD-MM-YY HH:MM in the string 
dmy_hms("31-01-2022 22:10")

输出

[1] "2020-01-31 22:22:10 UTC"

正如你在输出中看到的,日期被打印为DD-MM-YY HH:MM格式。

获取数据/时间的各个组成部分

lubridate为我们提供了一些函数,使用这些函数我们可以从一个日期对象中拉出一个特定的组件。例如,月份、月份的日期、年份等。以下函数用于提取一个特定的组件—-。

函数 描述
year() 从一个日期或日期时间对象中提取年份。
month() 从一个日期或日期时间对象中调出月份。
mday() 从一个日期或日期时间对象中调出月份的日期
yday() 从一个数据或日期时间对象中提取当年的日期。
wday() 从一个数据或日期时间对象中提取一周的日期。

示例

现在让我们看看这些函数的工作情况–

# Include library
library("lubridate")

# Create a date-time object in DD-MM-YY HH:MM:SS
# From a string passed in the format: DD-MM-YY HH:MM:SS
dateTime <- ymd_hms("2022-01-31 22:10:10")

# Print the year
print(paste("The year is equal to", year(dateTime)))

输出

[1] "The day of the year is equal to 31"

打印该月 –

print(paste("The month is equal to", month(dateTime)))

输出

[1] "The month is equal to 1"

打印月日-

print(paste("The day of the month is equal to", mday(dateTime)))

输出

[1] "The day of the month is equal to 31"

打印年月日-

print(paste("The day of the year is equal to", yday(dateTime)))

输出

[1] "The day of the year is equal to 31"

打印年月日-

print(paste("The day of the year is equal to", yday(dateTime)))

输出

[1] "The day of the year is equal to 31"

打印一周的日子

print(paste("The weekday is equal to", wday(dateTime)))

输出

[1] "The weekday is equal to 2"

结论

在本教程中,我们讨论了在R中处理日期和时间的问题。我们看到了在lubridate库中定义的各种函数的工作。我希望本教程能对你的数据科学学习有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程