📜  从 R 中减去时间

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

从 R 中减去时间

R 编程语言中的时间对象可以使用 POSIXct 类声明,该类提供对此类对象的快速操作和存储。 R 中的外部包还有助于处理时间和日期,并允许对它们执行比较和直接算术运算。

方法 1:使用 POSIXct 对象

日期字符串可以首先转换为 POSIXct 对象,然后可以轻松地对其执行基本算术。 POSIXct 对象简化了数学运算的过程,因为它们依赖秒作为时间管理的主要单位。日期将转换为标准时区 UTC。可以使用 R 中的 as.POSIXct(date) 方法将字符串类型的日期对象转换为 POSIXct 对象。由于日期以秒为单位存储,因此可以通过首先将小时和分钟转换为秒单位来执行减法也。

句法:



结果作为日期时间对象返回,减去属于 POSIXct 类的相应小时数。

例子:

R
# declaring a time object
time1 <- as.POSIXct("08:32:07", format = "%H:%M:%S")
  
print ("Time")
print (time1)
  
# converting 3 hours to seconds
hrs <- 3 * 60 * 60
  
print  ("Subtracted Time")
print (time1 - hrs)


R
# getting required libraries
library(lubridate)
  
# getting current time
time <- Sys.time()
  
print("Current time")
print (time)
  
# subtracting hours
hrs <- hours(5)
mod_time <- time - hrs
  
print ("Subtracting 5 hours")
print (mod_time)


R
# declaring a time object
time1 <- strptime("00:32:07", format = "%H:%M:%S")
print ("Time")
print (time1)
  
# converting 5 hours to seconds
hrs <- 5 * 60 * 60
print  ("Subtracted Time")
print (time1 - hrs)


输出

[1] "Time"
[1] "2021-05-19 08:32:07 UTC"
[1] "Subtracted Time"
[1] "2021-05-19 05:32:07 UTC"

方法 2 : 使用 lubridate 包

R 中的 Lubridate 包用于处理日期和时间对象。它使解析和操作对象变得更容易,并且需要安装并加载到工作空间中。

R 中的 Sys.time()函数用于根据 IST 区域获取当前日期和时间对象。 R 中的 hours() 方法用于获取表示小时数的输入整数。润滑包对象允许对其各种组件进行直接算术,因此可以直接从润滑时间对象中减去小时数。结果也是属于这个类的对象。

例子:



电阻

# getting required libraries
library(lubridate)
  
# getting current time
time <- Sys.time()
  
print("Current time")
print (time)
  
# subtracting hours
hrs <- hours(5)
mod_time <- time - hrs
  
print ("Subtracting 5 hours")
print (mod_time)

输出

[1] "Current time" 
[1] "2021-05-19 16:31:37 IST" 
[1] "Subtracting 5 hours" 
[1] "2021-05-19 11:31:37 IST"

方法 3:使用strptime()方法

R 中的 strptime 方法用于将字符向量(各种格式)直接转换为 POSIXlt 格式。 strptime 比之前的方法快,因为 strptime() 只处理字符输入。

strptime() 的工作方式类似于 POSIXct 对象,其中所有计算都以秒为单位完成。此外,返回日期,这在某些情况下必不可少,其中减去某些小时也会导致日期发生变化。

例子:

电阻

# declaring a time object
time1 <- strptime("00:32:07", format = "%H:%M:%S")
print ("Time")
print (time1)
  
# converting 5 hours to seconds
hrs <- 5 * 60 * 60
print  ("Subtracted Time")
print (time1 - hrs)

输出

[1] "Time" 
[1] "2021-05-19 00:32:07 IST"
[1] "Subtracted Time" 
[1] "2021-05-18 19:32:07 IST"