我试图以小时为单位找出两个日期之间的差异,对于超过一天的时间差异,我得到了非常离谱和不正确的数字。
以下是数据示例:
Observation Status DateTime
1 Active 2016-11-04 22:32:49
2 Inactive 2016-11-05 08:30:56
我正在运行这个命令:
getDiff <- function(x) {
difftime(shift(x, fill = NA, type = "lead"), x, units = "hours")
}
diff_result <- dataframe[, time.diff := ifelse(Status == "Active",
getDiff(DateTime), NA)]
我得到以下输出:
Observation Status DateTime Time.diff
1 Active 2016-11-04 22:32:49 8757.884
2 Inactive 2016-11-05 08:30:56
此命令适用于在不同日期不会发生的所有其他差异。正确答案应该在 10 小时左右,不超过 8000 小时。
还,
> class(DataFrame$DateTime)
[1] "POSIXct" "POSIXt"
先感谢您!