【发布时间】:2017-08-15 14:06:47
【问题描述】:
我有一个以下格式的数据框,我试图找出事件“已分配”与事件“已创建”之前的最后一次时间之间的差异。
**AccountID** **TIME** **EVENT**
1 2016-11-08T01:54:15.000Z CREATED
1 2016-11-09T01:54:15.000Z ASSIGNED
1 2016-11-10T01:54:15.000Z CREATED
1 2016-11-11T01:54:15.000Z CALLED
1 2016-11-12T01:54:15.000Z ASSIGNED
1 2016-11-12T01:54:15.000Z SLEEP
目前我的代码如下,我的困难是选择刚刚分配事件之前的创建
test <- timetable.filter %>%
group_by(AccountID) %>%
mutate(timeToAssign = ifelse(EVENT == 'ASSIGNED',
interval(ymd_hms(TIME), max(ymd_hms(TIME[EVENT == 'CREATED']))) %/% hours(1), NA))
我正在寻找输出是
**AccountID** **TIME** **EVENT** **timeToAssign**
1 2016-11-08T01:54:15.000Z CREATED NA
1 2016-11-09T01:54:15.000Z ASSIGNED 12
1 2016-11-10T01:54:15.000Z CREATED NA
1 2016-11-11T01:54:15.000Z CALLED NA
1 2016-11-12T01:54:15.000Z ASSIGNED 24
1 2016-11-12T01:54:15.000Z SLEEP NA
【问题讨论】:
-
预期输出是什么?
-
你能显示你想要的输出吗?
-
timeToAssign中的单位是什么? -
timetable.filter %>% group_by(AccountID, cumsum(EVENT == "CREATED")) %>% mutate(timeToAssign = ifelse(EVENT == 'ASSIGNED', TIME - first(TIME), NA))。这应该让你开始。 -
不应该分别是24小时和48小时吗?