gpt4 book ai didi

r - 根据时间序列中的差距对行进行分组

转载 作者:行者123 更新时间:2023-12-01 08:00:54 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Group rows in data frame based on time difference between consecutive rows

(2 个回答)


4年前关闭。




我有一个 GPS 数据的时间序列,需要根据 将其分割成更小的部分。差距在时间戳中。

例如,考虑以下数据框,我想添加段号 将时间戳的每个“块”分段,每次在时间序列中至少有 的间隙时有效地吐出数据30 秒 .

结果 data.frame 看起来像这样:

   timestamp segment
1 1 1
2 3 1
3 5 1
4 10 1
5 42 2
6 45 2
7 92 3
8 156 4
9 160 4
10 162 4
11 163 4
12 164 4
13 200 5
14 203 5

有什么方法可以有效地做到这一点? data.frame 是一个分组的 tbl_df(dplyr 包),具有几个不同的时间序列,并且可能非常大。

最佳答案

您的示例数据

t <- c(1, 3, 5, 10, 42, 45, 92, 156, 160, 162, 163, 164, 200, 203)

段号
s <- cumsum(c(TRUE,diff(t)>=30))

输出
data.frame(timestamp=t,segment=s)

时间戳段
1 1 1
2 3 1
3 5 1
4 10 1
5 42 2
6 45 2
7 92 3
8 156 4
9 160 4
10 162 4
11 163 4
12 164 4
13 200 5
14 203 5

关于r - 根据时间序列中的差距对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com