gpt4 book ai didi

r - 计算两列之间的时差

转载 作者:行者123 更新时间:2023-12-04 09:24:22 24 4
gpt4 key购买 nike

在将因子转换成POSIXCT格式然后应用datetime格式之后,我想计算2 pos1和pos2之间的datetime之差。

但是,当我对某个特定项目执行此操作时,我会在控制台中得到正确的答案,但是当我对整个操作集进行操作时,控制台只会输出数字,而且日期框架也会反射(reflect)出这些数字,如您所见。

当我尝试区别时如何获得数据框中的小时数?
我正在使用lubridate软件包,有什么功能吗?

这是RStudio中描述数据的示例代码/图片

CR_Date <- data.frame(
pos1="2014-07-01 00:00:00",
pos2=c("2014-07-01 00:00:00","2014-07-01 10:15:00")
)
CR_Date[] <- lapply(CR_Date,as.POSIXct)
CR_Date

# pos1 pos2
#1 2014-07-01 2014-07-01 00:00:00
#2 2014-07-01 2014-07-01 10:15:00

CR_Date$pos2[2] - CR_Date$pos1[2]
#Time difference of 10.25 hours
CR_Date$hours <- CR_Date$pos2 - CR_Date$pos1

最佳答案

首先,这与润滑液无关。

其次,RStudio通过拧紧显示窗口中变量的打印让您失望。如果在命令行窗口中输入CR_Date$hours,您将看到它的打印内容

#Time differences in secs
#[1] 0 36900

head(CR_Date)给出:
#        pos1                pos2      hours
#1 2014-07-01 2014-07-01 00:00:00 0 secs
#2 2014-07-01 2014-07-01 10:15:00 36900 secs

无论哪种方式都会向您提示其显示内容。

正如@Victorp所建议的, difftime是解决此问题的方法:
CR_Date$hours <- with(CR_Date, difftime(pos2,pos1,units="hours") )
CR_Date

# pos1 pos2 hours
#1 2014-07-01 2014-07-01 00:00:00 0.00 hours
#2 2014-07-01 2014-07-01 10:15:00 10.25 hours

关于r - 计算两列之间的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25033585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com