R语言 在ifelse()函数中包含lag()

euoag5mw  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(126)

我有一秒一秒的数据,想根据变量“加速度”的一些条件创建一个新的变量“category”。具体来说,如果“加速度〈= -2 OR(当前秒的加速度〈-1 &前一秒的加速度〈-1 &前两秒的加速度〈-1),则“category”等于1,否则为0。
我想我应该在代码中的某个地方使用lag()来说明时间延迟,但是它就是不起作用......有人能指出我的错误并纠正我吗?

df$category <- ifelse(df$acceleration<=-2 | 
                     (df$acceleration<-1 & lag(df$acceleration, 1)<-1 & 
                      lag(df$acceleration, 2) < -1), 1,0)
7eumitmz

7eumitmz1#

使用dplyr

df %>%
  mutate(acc1 = lag(acceleration), 
         acc2 = lag(acc1),
         category = ifelse( acceleration <= -2 | 
                             (acceleration < -1 & 
                              acc1 < -1 & acc2 < -1), 
                                     1, 0)) %>%
         select(-acc1, acc2)

相关问题