【问题标题】:Including lag() in ifelse() function在 ifelse() 函数中包含 lag()
【发布时间】:2017-06-21 21:13:22
【问题描述】:

我有逐秒数据,想根据变量“加速度”的某些条件创建一个新变量“类别”。具体来说,如果“加速度

我猜我应该在代码中的某处使用 lag() 来解决时间延迟问题,但它不起作用...有人可以指出我的错误并纠正我吗?

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

【问题讨论】:

  • 小心小于负数,你需要&lt; -1 而不是赋值运算符&lt;-1

标签: r if-statement dplyr lag


【解决方案1】:

使用dplyr

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

【讨论】:

    猜你喜欢
    • 2014-03-31
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2021-11-11
    • 2023-03-16
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多