我有以下几点:
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
我们的目标是找到每个chan
中行之间的时间间隔,即第1行我想获得NA,第2行--33秒,第3 - 5秒等等。我在考虑使用mutate
添加额外的列这将在该组中存储下一个start_dttm值。以类似于dplyr::first(start_dttm)
的方式。有什么建议?
您可以group_by 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