gpt4 book ai didi

r - for 循环中的超前和滞后

转载 作者:行者123 更新时间:2023-12-05 03:21:11 24 4
gpt4 key购买 nike

我的数据框 crisisdata 由许多向量组成:年、国家、a、b、c

我想在 for 循环中为 a、b 和 c 创建滞后和引导:

我的尝试:

crisis_variables <- c("a", "b", "c")

for (var in crisis_variables){

# add lags
crisisdata[, (paste0("l",1:4, "_", var)):= shift(as.name(var),1:4), by=country]

# add leads
crisisdata[, (paste0("f",0:4, "_", var)):= shift(as.name(var),0:-4), by=country]

但是在每个滞后变量和超前变量中我只有 NA 值。

最佳答案

您可以使用高度灵活的 shift 函数来一次生成所有滞后和超前,如下所示:

# create column names
n = -4:4
cols = paste0(ifelse(n>0, "l", "f"), abs(n))
cols = paste0(cols, "_", rep(crisis_variables, each=length(cols)))
# f4_a, f3_a, ..., l3_c, l4_c

# generate all lags and leads
crisisdata[, (cols) := shift(.SD, n), by=country, .SDcols=crisis_variables]

关于r - for 循环中的超前和滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73027845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com