Skip to content

Instantly share code, notes, and snippets.

@brshallo
Last active August 3, 2021 23:54
Show Gist options
  • Save brshallo/cadaa40cef6387e28924b6c3756627c9 to your computer and use it in GitHub Desktop.
Save brshallo/cadaa40cef6387e28924b6c3756627c9 to your computer and use it in GitHub Desktop.
library(tidyverse)

lag_multiple <- function(x, n_vec){
  map(n_vec, lag, x = x) %>% 
    set_names(paste0("lag", n_vec)) %>% 
    as_tibble()
}

tibble(x = 1:30) %>% 
  mutate(lag_multiple(x, 1:5))
#> # A tibble: 30 x 6
#>        x  lag1  lag2  lag3  lag4  lag5
#>    <int> <int> <int> <int> <int> <int>
#>  1     1    NA    NA    NA    NA    NA
#>  2     2     1    NA    NA    NA    NA
#>  3     3     2     1    NA    NA    NA
#>  4     4     3     2     1    NA    NA
#>  5     5     4     3     2     1    NA
#>  6     6     5     4     3     2     1
#>  7     7     6     5     4     3     2
#>  8     8     7     6     5     4     3
#>  9     9     8     7     6     5     4
#> 10    10     9     8     7     6     5
#> # ... with 20 more rows
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment