gpt4 book ai didi

r - 通过ID计算时差

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

我有这样的数据:

Incident.ID.. = c(rep("INCFI0000029582",4), rep("INCFI0000029587",4))
date = c("2014-09-25 08:39:45", "2014-09-25 08:39:48", "2014-09-25 08:40:44", "2014-10-10 23:04:00", "2014-09-25 08:33:32", "2014-09-25 08:34:41", "2014-09-25 08:35:24", "2014-10-10 23:04:00")
df = data.frame(Incident.ID..,date, stringsAsFactors = FALSE)

df

Incident.ID.. date
1 INCFI0000029582 2014-09-25 08:39:45
2 INCFI0000029582 2014-09-25 08:39:48
3 INCFI0000029582 2014-09-25 08:40:44
4 INCFI0000029582 2014-10-10 23:04:00
5 INCFI0000029587 2014-09-25 08:33:32
6 INCFI0000029587 2014-09-25 08:34:41
7 INCFI0000029587 2014-09-25 08:35:24
8 INCFI0000029587 2014-10-10 23:04:00

我使用这个函数来计算以秒为单位的时间差:
padded.diff = function(x) c(0L, diff(x)) 

df2=within(df, {
date = strptime(date, format="%Y-%m-%d %H:%M:%S")
date.diff = padded.diff(as.numeric(date))
})

df2

Incident.ID.. date date.diff
1 INCFI0000029582 2014-09-25 08:39:45 0
2 INCFI0000029582 2014-09-25 08:39:48 3
3 INCFI0000029582 2014-09-25 08:40:44 56
4 INCFI0000029582 2014-10-10 23:04:00 1347796
5 INCFI0000029587 2014-09-25 08:33:32 -1348228
6 INCFI0000029587 2014-09-25 08:34:41 69
7 INCFI0000029587 2014-09-25 08:35:24 43
8 INCFI0000029587 2014-10-10 23:04:00 1348116

但是我如何计算差异,以便它从每个“事件.ID ..”的零开始?:
 Incident.ID..                date date.diff
1 INCFI0000029582 2014-09-25 08:39:45 0
2 INCFI0000029582 2014-09-25 08:39:48 3
3 INCFI0000029582 2014-09-25 08:40:44 56
4 INCFI0000029582 2014-10-10 23:04:00 1347796
5 INCFI0000029587 2014-09-25 08:33:32 0
6 INCFI0000029587 2014-09-25 08:34:41 69
7 INCFI0000029587 2014-09-25 08:35:24 43
8 INCFI0000029587 2014-10-10 23:04:00 1348116

最佳答案

使用基础 R,您可以简单地将其包装在 ave

ave(as.numeric(as.POSIXct(date)), Incident.ID.., FUN = padded.diff) 

或使用 data.table (根据@akruns 评论)
library(data.table) 
setDT(df)[, date.diff := padded.diff(as.POSIXct(date)), by = Incident.ID..]

关于r - 通过ID计算时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30378946/

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