R中的difftime计算不正确
我试图找出两个日期在小时内的差异,而对于超过一天的时间差异,我得到了非常离谱和错误的数字 以下是数据示例:R中的difftime计算不正确,r,date,data-science,posixct,difftime,R,Date,Data Science,Posixct,Difftime,我试图找出两个日期在小时内的差异,而对于超过一天的时间差异,我得到了非常离谱和错误的数字 以下是数据示例: Observation Status DateTime 1 Active 2016-11-04 22:32:49 2 Inactive 2016-11-05 08:30:56
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)]
此命令适用于不在不同日期发生的所有其他差异。
正确答案应该在10小时左右,而不是8000小时以上
而且
> class(DataFrame$DateTime)
[1] "POSIXct" "POSIXt"
提前谢谢你 OP似乎没有正确转换
DateTime
格式。8757
小时相当于大约1年。因此,DateTime
可能格式错误
使用OP在我这边的数据,结果看起来不错
library(data.table)
getDiff <- function(x) {
difftime(shift(x, fill = NA, type = "lead"), x, units = "hours")
}
setDT(df)
diff_result <- df[, time.diff := ifelse(Status == "Active",
getDiff(DateTime), NA)]
diff_result
# Observation Status DateTime time.diff
# 1: 1 Active 2016-11-04 22:32:49 9.968611
# 2: 2 Inactive 2016-11-05 08:30:56 NA
#
库(data.table)
getDiff
library(data.table)
getDiff <- function(x) {
difftime(shift(x, fill = NA, type = "lead"), x, units = "hours")
}
setDT(df)
diff_result <- df[, time.diff := ifelse(Status == "Active",
getDiff(DateTime), NA)]
diff_result
# Observation Status DateTime time.diff
# 1: 1 Active 2016-11-04 22:32:49 9.968611
# 2: 2 Inactive 2016-11-05 08:30:56 NA
#
df <- read.table(text =
"Observation Status DateTime
1 Active '2016-11-04 22:32:49'
2 Inactive '2016-11-05 08:30:56'",
header = TRUE, stringsAsFactors = FALSE)
df$DateTime = as.POSIXct(df$DateTime, format = "%Y-%m-%d %H:%M:%S")