R语言 从时间中减去小时

R语言 从时间中减去小时

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

方法1:使用POSIXct对象

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

1小时=1*60*60秒

1分钟=1*60秒

语法

as.POSIXct ( date , format)

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

例子

# 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

输出

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

方法2:使用lubridate包

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

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

例子

# 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

输出

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

方法3:使用strptime()方法

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

语法

strptime(date, format, tz = “”)

参数:

date – 字符格式的日期

format – 输入日期的格式指定符

tz – 时区(可选)

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)
R

输出

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册