所以,我正在处理一个数据框,其中包含444天的每日数据。我有几个变量要滞后,以在回归模型(lm
)中使用。我想让它们每个滞后7次。我目前是这样生成滞后项的...
email_data$email_reach1 <- lag(ts(email_data$email_reach, start = 1, end = 444), 1)
email_data$email_reach2 <- lag(ts(email_data$email_reach, start = 1, end = 444), 2)
email_data$email_reach3 <- lag(ts(email_data$email_reach, start = 1, end = 444), 3)
email_data$email_reach4 <- lag(ts(email_data$email_reach, start = 1, end = 444), 4)
email_data$email_reach5 <- lag(ts(email_data$email_reach, start = 1, end = 444), 5)
email_data$email_reach6 <- lag(ts(email_data$email_reach, start = 1, end = 444), 6)
email_data$email_reach7 <- lag(ts(email_data$email_reach, start = 1, end = 444), 7)
然后,我重复这个过程来使每个需要滞后的变量都进行滞后。
这似乎是一种完成此任务的可怕方法。有更好的方法吗?
我考虑过对整个数据框进行滞后处理,这个方法可以实现,但我不知道如何为结果分配变量名称并将其合并回原始数据框中。
colnames(lagged) <- paste0("email_reach", 1:ncol(lagged))
的方式在事后分配变量名。 - Alex A.lag
方法只有lag.zooreg
。您应该发布一个库调用到您已经加载的包中,以便获取所需的方法。(我发现lag
函数经常不能提供我期望的结果。需要一些小心才能得到预期的结果。) - IRTFMlag
函数。"start"参数是基于R的ts
函数中的。 - John Chrysostomts()
。请注意确保它执行的是您所期望的操作。 - IRTFM