📜  如何从 R 中的时间戳中提取时间?

📅  最后修改于: 2022-05-13 01:54:26.358000             🧑  作者: Mango

如何从 R 中的时间戳中提取时间?

在本文中,我们将了解如何在 R 编程语言中从时间戳中提取时间。

方法 1:在 R 中使用 POSIXct 类

我们可以以字符串变量的形式存储一个日期变量,然后将其转换为通用格式的时间戳。可以使用 POSIXct 方法将日期时间字符串变量转换为 POSIXct 类。使用 as.POSIXct 方法在 R 中存储日期和时间以及关联的时区。 POSIXlt 类分别维护小时、分钟、秒、日、月和年的记录。 POSIXct 类以秒为单位保存日期和时间,其中秒数从 1970 年 1 月 1 日开始。此方法用于存储和计算。然后可以使用 format() 方法从 datetime 对象中提取时间戳。

format() 方法具有以下语法:

代码:

R
# declaring string variable
date <- "01/08/2020 12:48:00"
  
# conversion of date variable into 
# POSIXct format 
date <- as.POSIXct(date, format = "%m/%d/%Y %H:%M:%S")
  
# print original complete date
print ("Original TimeStamp: ")
print (date)
  
# extract time from date
time <- format(date, format = "%H:%M:%S")
print("Extraction of time: ")
print(time)


R
# invoking specific library 
library(lubridate)
  
# declaring string variable
date <- dmy_hms("01/08/2020 11:18:56")
  
# print original complete date
print ("Original TimeStamp: ")
print (date)
  
# extract time from date
time <- format(date, format = "%H:%M:%S")
print("Extraction of time: ")
print(time)


R
require("hms")
  
# declaring string variable
date <- "01/08/2020 12:15:38"
  
# conversion of date variable into
# POSIXct format 
date <- as.POSIXct(date, format = "%m/%d/%Y %H:%M:%S")
  
# print original complete date
print ("Original TimeStamp: ")
print (date)
  
# extract time from date
time <- as_hms(date)
print("Extraction of time: ")
print(time)


输出

[1] "Original TimeStamp: "
[1] "2020-01-08 12:48:00 UTC"
[1] "Extraction of time: "
[1] "12:48:00"

方法 2:在 R 中使用 Lubridate 包

R 中的 Lubridate 包用于存储和修改日期格式。它有大量可用的解析函数,可以非常简单地访问日期和各种格式。该包中的 dmy_hms() 方法是最常用的方法,用于以标准格式(数据-月-年-时-分-秒)存储日期。如果未指定时区(tz),则使用标准 UTC 时区进行计算。可以从此对象中提取特定信息,而不会影响原始日期时间对象。 format() 方法用于从这个 lubridate datetime 对象中提取时间。

dmy_hms() 方法具有以下语法:

代码:

电阻

# invoking specific library 
library(lubridate)
  
# declaring string variable
date <- dmy_hms("01/08/2020 11:18:56")
  
# print original complete date
print ("Original TimeStamp: ")
print (date)
  
# extract time from date
time <- format(date, format = "%H:%M:%S")
print("Extraction of time: ")
print(time)

输出

[1] "Original TimeStamp: "
[1] "2020-01-08 11:18:56 UTC"
[1] "Extraction of time: "
[1] "11:18:56"

方法 3:在 R 中使用 hms 包

R 中的 hms 包还可用于对日期时间对象执行访问、存储和算术运算。可以首先使用以下命令将软件包安装到环境中:

install.packages("hms")

然后可以包含该包以提供处理日期时间对象操作的方法。该库提供了一个函数as_hms(date),用于直接从日期时间对象访问时间戳。 hms 代表小时分和秒。字符串类型的日期需要先转换成标准的POSIXct格式,才能应用这个方法。

as_hms(date) 方法将完整的日期时间对象作为输入并从中提取时间戳。

代码:

电阻

require("hms")
  
# declaring string variable
date <- "01/08/2020 12:15:38"
  
# conversion of date variable into
# POSIXct format 
date <- as.POSIXct(date, format = "%m/%d/%Y %H:%M:%S")
  
# print original complete date
print ("Original TimeStamp: ")
print (date)
  
# extract time from date
time <- as_hms(date)
print("Extraction of time: ")
print(time)

输出

[1] "Original TimeStamp: "
[1] "2020-01-08 12:15:38 IST" 
[1] "Extraction of time: " 
[1] 12:15:38