计算窗口中的秒数/毫秒数

aha*_*aha 2 time diff r

我有一个包含2列的数据集,我想用它来生成第3列.这是基于时间的数据,看起来像这样:

   raw_timestamp_part_2 num_window 
1                788290         11
2                808298         11
3                820366         11
4                120339         12
5                196328         12
6                304277         12
7                368296         12
8                440390         12
9                 28311         13
10                56286         13
Run Code Online (Sandbox Code Playgroud)

我希望新列在窗口内是毫秒.因此,对于新窗口,我的新列中的值应为0,否则应该是当前时间戳与上一个时间戳之间的差异.

diff(df$raw_timestamp_part_2) 让我接近,但它不会给我0在窗口的第一次观察.

Ric*_*ven 6

一个dplyr解决方案.如果调用了数据,df那么你可以这样做

library(dplyr)

group_by(df, num_window) %>%
    mutate(newCol = c(0, diff(raw_timestamp_part_2)))

#    raw_timestamp_part_2 num_window newCol
# 1                788290         11      0
# 2                808298         11  20008
# 3                820366         11  12068
# 4                120339         12      0
# 5                196328         12  75989
# 6                304277         12 107949
# 7                368296         12  64019
# 8                440390         12  72094
# 9                 28311         13      0
# 10                56286         13  27975
Run Code Online (Sandbox Code Playgroud)