[英]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))
如何創建兩個不同組存在的多個滯后( lvar1
、 lvar2
、 lvar3
),結果是我的 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.