簡體   English   中英

如何在分組時間序列上創建多個滯后變量?

[英]How to create mulitple lagged variables over a grouped time series?

對於分組滯后或多次滯后一組,我已經找到了這個問題的解決方案,但不是兩者兼而有之。 對於此示例,我想使用以下 dataframe:

df <- data.frame(doy = rep((1:2), each = 6), years = rep(2017:2022), var = rnorm(6))

如何創建兩個不同組存在的多個滯后( lvar1lvar2lvar3 ),結果是我的 2017 組 2 在組 1 中沒有 2022 的滯后變量?

圖書館(dplyr)

df <- data.frame(doy = rep((1:2), each = 6), years = rep(2017:2022), var = rnorm(6))

lag_fn <- list()
lags <- 1:10

for(i in lags) {
  
  fixer <- function(x, i) { 
    force(i) 
    return(
      function(x) {
        return(dplyr::lag(x, i))
      }
    )}
  
  lag_fn[[i]] <- fixer(x, i)
}


df %>% group_by('your_group_column') %>%  
  mutate(across("your_value_column", lag_fn, .names = "lag_{.fn}"))

BR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM