R语言 如何在R中比较时间

R语言 如何在R中比较时间

R编程语言支持日期和DateTime对象,使用各种不同的格式和指定器。内置框架as.Date函数只负责处理日期,R编程中的库CHRON同时处理日期和时间,不支持时区;而POSIXct和POSIXlt类提供了处理日期时间对象以及时区的支持。日期时间对象可以轻松转换为其他与日期相关的对象。

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

1小时=16060秒

1分钟=1*60秒

方法1:使用逻辑运算符

POSIXct日期可以使用逻辑运算符来比较日期。逻辑运算符被应用在不同的参数日期之间,并根据输出结果返回一个布尔值TRUE或FALSE。

例子

# declaring a time object
time1 <- as.POSIXct("08:32:07", format = "%H:%M:%S")
print ("Time 1")
print (time1)
 
time2 <- as.POSIXct("08:32:08", format = "%H:%M:%S")
print ("Time 2")
print (time2)
 
if ( time1 == time2){
    print("Equal times")
}else{
     
    if(time1< time2){
        print ("Time1 smaller")
    }else{
        print ("Time2 smaller")
    }
}
Bash

输出

[1] "Time 1"
[1] "2021-05-18 08:32:07 UTC"
[1] "Time 2"
[1] "2021-05-18 08:32:08 UTC"
[1] "Time1 smaller"
Bash

方法2:使用比较运算符

  • 使用difftime()方法

R语言中的difftime()方法是用来计算给定时间戳的差异的。它被用来返回一个由单位属性伴随的difftime类本身的对象。”difftime “对象只支持有限的算术运算,也就是说,它们可以被加或减,以及乘或除以一个数字向量。这个方法返回的结果是基于第一个参数的时间戳值减去第二个参数,也就是time1-time2。如果时间1大于时间2,结果为正,如果两个时间段相等,结果为0,其余情况为负。

语法: difftime(time1, time2, tz,units = c(“auto”, “secs”, “minutes”, “hours”, “days”, “weeks”))

参数:

  • time1和time2 – 数据时间对象或数字向量
  • tz – 时区(可选)
  • units – 指明要进行算术的单位

返回类型: 一个对数据时间对象进行算术的difftime对象

例子。

# declaring a time object
time1 <- as.POSIXct("08:35:07", format = "%H:%M:%S")
print ("Time 1")
print (time1)
 
time2 <- as.POSIXct("08:32:08", format = "%H:%M:%S")
print ("Time 2")
print (time2)
 
if ( time1 == time2){
    print("Equal times")
}else{
   
    # checking if time1 is smaller than time2
    if(time1< time2){
        print ("Time2 - Time1")
       
        # calculating time2-time1
        difftime(time2,time1, units = "hours")
    }else{
       
        # calculating time1-time2
        print ("Time1 - Time2")
        difftime(time1,time2, units = "hours")      
    }
}
Bash

输出

[1] "Time 1"
[1] "2021-05-18 08:35:07 UTC"
[1] "Time 2"
[1] "2021-05-18 08:32:08 UTC"
[1] "Time1 - Time2"
Time difference of 0.04972222 hours
Bash
  • 使用’-‘运算符

日期对象可以使用减号运算符进行比较,从大日期中减去小日期。返回日期的单位是小时、分钟或秒的最大值。

例子

# declaring a time object
time1 <- as.POSIXct("09:35:07", format = "%H:%M:%S")
print ("Time 1")
print (time1)
 
time2 <- as.POSIXct("09:35:08", format = "%H:%M:%S")
print ("Time 2")
print (time2)
 
if ( time1 == time2){
    print("Equal times")
}else{
   
    # checking if time1 is smaller than time2
    if(time1< time2){
        print ("Time2 - Time1")
       
        # calculating time2-time1
        print (time2 -time1)
    }else{
       
        # calculating time1-time2
        print ("Time1 - Time2")
        print (time1-time2)  
    }
}
Bash

输出

[1] "Time 1"
[1] "2021-05-18 09:35:07 UTC"
[1] "Time 2"
[1] "2021-05-18 09:35:08 UTC"
[1] "Time2 - Time1"
Time difference of 1 secs
Bash

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册