如果列 serviceID 具有相同的值,我必须找到连续行的日期时间(以秒为单位)之间的差异。
日期:
约会时间 | 服务ID |
---|---|
2021-04-03 02:53:43 | 2000年 |
2021-04-03 02:53:45 | 2000年 |
2021-04-03 02:53:47 | 2000年 |
2021-04-03 02:53:49 | 2012年 |
2021-04-03 02:53:51 | 2012年 |
2021-04-03 02:53:53 | 2015年 |
2021-04-03 02:53:55 | 2015年 |
2021-04-03 02:53:57 | 2015年 |
输出 :
约会时间 | 服务ID | 差异 |
---|---|---|
2021-04-03 02:53:43 | 2000年 | 不适用 |
2021-04-03 02:53:45 | 2000年 | 2 |
2021-04-03 02:53:47 | 2000年 | 2 |
2021-04-03 02:53:49 | 2012年 | 不适用 |
2021-04-03 02:53:51 | 2012年 | 2 |
2021-04-03 02:53:53 | 2015年 | 不适用 |
2021-04-03 02:53:55 | 2015年 | 2 |
2021-04-03 02:53:57 | 2015年 | 2 |
这该怎么做?我试过这个,但给出了错误:
dt<-dt %>%
group_by(serviceID) %>%
mutate(diff= as.numeric(difftime(dt$datetime, lag(dt$datetime))))
有人可以帮忙吗?谢谢。
$
使用dplyr
管道时请勿使用。此外,明确说明 中的单位总是更安全difftime
。
library(dplyr)
dt <- dt %>%
group_by(serviceID) %>%
mutate(diff= as.numeric(difftime(datetime, lag(datetime), units = 'secs'))) %>%
ungroup
如果你想在data.table
-
library(data.table)
setDT(dt)
dt[, diff := as.numeric(difftime(datetime, shift(datetime), units = 'secs')), serviceID]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句