使用dplyr查找组内的时间间隔
我有以下几点:使用dplyr查找组内的时间间隔,r,dplyr,lubridate,R,Dplyr,Lubridate,我有以下几点: start_dttm chan <dttm> <dbl> 1 2018-03-27 23:32:22 5 2 2018-03-27 22:41:24 15 3 2018-03-27 22:41:57 15 4 2018-03-27 22:42:02 15 5 2018-03-27 22:42:48 15 6 2018-03-27 22:42:55 1
start_dttm chan
<dttm> <dbl>
1 2018-03-27 23:32:22 5
2 2018-03-27 22:41:24 15
3 2018-03-27 22:41:57 15
4 2018-03-27 22:42:02 15
5 2018-03-27 22:42:48 15
6 2018-03-27 22:42:55 15
7 2018-03-27 22:42:41 15
8 2018-03-27 22:43:04 15
9 2018-03-27 22:43:24 15
10 2018-03-27 22:43:38 15
11 2018-03-27 22:44:16 15
12 2018-03-27 22:44:03 15
start\u dttm chan
1 2018-03-27 23:32:22 5
2 2018-03-27 22:41:24 15
3 2018-03-27 22:41:57 15
4 2018-03-27 22:42:02 15
5 2018-03-27 22:42:48 15
6 2018-03-27 22:42:55 15
7 2018-03-27 22:42:41 15
8 2018-03-27 22:43:04 15
9 2018-03-27 22:43:24 15
10 2018-03-27 22:43:38 15
11 2018-03-27 22:44:16 15
12 2018-03-27 22:44:03 15
目标是找到每个
chan
中的行之间的时间间隔,即对于第1行,我希望得到NA,对于第2行--33秒,对于第3行--5秒等等。我正在考虑使用mutate
添加一个额外的列,该列将存储此组中的下一个start\u dttm值。以类似于dplyr::first(start\u dttm)
的方式。有什么建议吗?您可以按chan
对您进行分组,然后使用lead
计算差异:
df %>%
group_by(chan) %>%
mutate(time_diff = lead(start_dttm) - start_dttm)
# A tibble: 12 x 3
# Groups: chan [2]
# start_dttm chan time_diff
# <dttm> <chr> <time>
# 1 2018-03-27 23:32:22 5 NA
# 2 2018-03-27 22:41:24 15 33
# 3 2018-03-27 22:41:57 15 5
# 4 2018-03-27 22:42:02 15 46
# 5 2018-03-27 22:42:48 15 7
# 6 2018-03-27 22:42:55 15 -14
# 7 2018-03-27 22:42:41 15 23
# 8 2018-03-27 22:43:04 15 20
# 9 2018-03-27 22:43:24 15 14
#10 2018-03-27 22:43:38 15 38
#11 2018-03-27 22:44:16 15 -13
#12 2018-03-27 22:44:03 15 NA
df%>%
组别(陈)%>%
变异(时间差=领先(开始时间差)-开始时间差)
#一个tibble:12x3
#组别:陈[2]
#开始\u dttm更改时间\u差异
#
#2018-03-27 23:32:22 5北美
# 2 2018-03-27 22:41:24 15 33
# 3 2018-03-27 22:41:57 15 5
# 4 2018-03-27 22:42:02 15 46
# 5 2018-03-27 22:42:48 15 7
# 6 2018-03-27 22:42:55 15 -14
# 7 2018-03-27 22:42:41 15 23
# 8 2018-03-27 22:43:04 15 20
# 9 2018-03-27 22:43:24 15 14
#10 2018-03-27 22:43:38 15 38
#11 2018-03-27 22:44:16 15 -13
#12 2018-03-27 22:44:03 15北美