根据与上一行

时间:2018-01-23 12:46:39

标签: r loops

我有一个带有hms::hms创建的difftimes的data.frame。 我知道我可以使用arrange()diff()来检查每次观察之间经过的时间。

如何创建一个$session变量,当经过的时间大于预定义值时,该变量会更改其值?

例如,鉴于以下数据:

    hour         time_elapsed
15:58:05                   NA
15:58:11                    6
15:58:17                    6
15:58:44                   27
15:58:51                    7
15:58:57                    6

考虑大于25的值作为断点,我们将:

    hour         time_elapsed     session
15:58:05                   NA           1
15:58:11                    6           1
15:58:17                    6           1
15:58:44                   27           2
15:58:51                    7           2
15:58:57                    6           2

提前致谢!

1 个答案:

答案 0 :(得分:0)

我们可以replace NA为0,然后创建逻辑条件并执行累积和

df1$session <- with(df1, cumsum(replace(time_elapsed, is.na(time_elapsed), 0) >25) + 1)