Создать переменную индикатора на основе нескольких лагов или на основе предыдущих N строк - PullRequest
0 голосов
/ 28 августа 2018

Я ищу более масштабируемые методы для создания индикаторных переменных на основе нескольких лагов. Ниже вы найдете воспроизводимый пример, показывающий желаемую новую переменную in_prev_3 - что означает, что в предыдущих трех записях / строках был найден хотя бы один TRUE. Хотя это работает, оно плохо масштабируется до больших значений N (например, 15, 30, 45 и т. Д.) И не является гибким.

library(tidyverse)

set.seed(4)
df <- data_frame(
  id = 1:20,
  bool = as.logical(rbinom(20, 1, 0.2))
)

df %>%
  mutate(last_3 = lag(bool, 3) + lag(bool, 2) + lag(bool, 1),
         in_prev_3 = last_3 > 0)
#> # A tibble: 20 x 4
#>       id bool  last_3 in_prev_3
#>    <int> <lgl>  <int> <lgl>    
#>  1     1 FALSE     NA NA       
#>  2     2 FALSE     NA NA       
#>  3     3 FALSE     NA NA       
#>  4     4 FALSE      0 FALSE    
#>  5     5 TRUE       0 FALSE    
#>  6     6 FALSE      1 TRUE     
#>  7     7 FALSE      1 TRUE     
#>  8     8 TRUE       1 TRUE     
#>  9     9 TRUE       1 TRUE     
#> 10    10 FALSE      2 TRUE     
#> 11    11 FALSE      2 TRUE     
#> 12    12 FALSE      1 TRUE     
#> 13    13 FALSE      0 FALSE    
#> 14    14 TRUE       0 FALSE    
#> 15    15 FALSE      1 TRUE     
#> 16    16 FALSE      1 TRUE     
#> 17    17 TRUE       1 TRUE     
#> 18    18 FALSE      1 TRUE     
#> 19    19 TRUE       1 TRUE     
#> 20    20 FALSE      2 TRUE

Создано в 2018-08-28 пакетом Представ (v0.2.0.9000).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...