如何找到R中日期之间的小时差

How to find difference in hours between dates in R

我有以下数据框 (DF1):

Date             Value   
29/12/2014 8:00  24.940   
29/12/2014 9:00  24.960   
29/12/2014 11:00 25.020 

我想为 DF1$DIFF 添加一个新列,其中包含每行的日期(包括小时)与其上面的日期之间的值差异。这样所需的结果将是:

Date             Value   Diff
29/12/2014 8:00  24.940   
29/12/2014 9:00  24.960    1
29/12/2014 11:00 25.020    2

我尝试使用 as.date 函数,但是,我只得到日期的差异:

> as.Date("2009-10-01 10:00")- as.Date("2009-10-01 9:00")
Time difference of 0 days

最初,如果您想查看小时差异,则不能使用 as.Date,因为那样会丢弃小时信息。而是使用 as.POSIXct。然后您可以计算差异:

as.POSIXct(strptime("2009-10-01 10:00:00", "%Y-%m-%d %H:%M:%S")) -
as.POSIXct(strptime("2009-10-01 09:00:00", "%Y-%m-%d %H:%M:%S"))

给你Time difference of 1 hours.

尝试使用包 lubridate。这是您可以使用 lubridate

执行此操作的方法
library(lubridate)

difftime(ymd_hm("2009-10-01 10:00"), ymd_hm("2009-10-01 9:00"))
#Time difference of 1 hours

ymd_hm("2009-10-01 10:00") - ymd_hm("2009-10-01 9:00")
#Time difference of 1 hours

另一个例子

difftime(dmy_hm("29/12/2014 11:00"), dmy_hm("29/12/2014 9:00"), units="hours")
#Time difference of 2 hours

ymd_hm("2009-10-01 10:00") - ymd_hm("2009-10-01 9:00")
#Time difference of 1 hours