如何在时间序列中自动创建n个滞后?

极大主义

我有一个带有列t的数据框。我想创建n个滞后列,其名称类似t-1,t-2等。

  year      t  t-1 t-2
19620101    1   NA  NA
19630102    2   1   NA
19640103    3   2   1
19650104    4   3   2
19650104    5   4   3
19650104    6   5   4

我的想法是,我将分四个步骤进行操作:

  • 使用“粘贴”的列名循环
  • 使用“粘贴”的滞后列的临时数据帧的循环
  • 创建滞后列的循环
  • 捆绑他们。

但是我无法继续执行代码。有点粗糙:

df_final<-lagged(df="odd",n=3)

lagged<-function(df,n){
   df<-zoo(df)
   lags<-paste("A", 1:n, sep ="_")
   for (i in 1:5) {
     odd<-as.data.frame(lag(odd$OBS_Q,-1*i,na.pad =  TRUE))

   #Cbind here
   } 

我一直在写这个函数。你能显示一些吗?或更简单的方法

参考:R向量/数据帧中的基本滞后


附录:

真实数据:

x<-structure(list(DATE = 19630101:19630104, PRECIP = c(0, 0, 0,0), 
               OBS_Q = c(1.61, 1.48, 1.4, 1.33), swb = c(1.75, 1.73, 1.7,1.67), 
               gr4j = c(1.9, 1.77, 1.67, 1.58), isba = c(0.83, 0.83,0.83, 0.83), 
               noah = c(1.31, 1.19, 1.24, 1.31), sac = c(1.99,1.8, 1.66, 1.57), 
               swap = c(1.1, 1.05, 1.08, 0.99), vic.mm.day. = c(2.1,1.75, 1.55, 1.43)), 
          .Names = c("DATE", "PRECIP", "OBS_Q", "swb","gr4j", "isba", "noah", "sac", "swap", "vic.mm.day."), 
          class = c("data.table","data.frame"), row.names = c(NA, -4L))

要滞后的列是OBS_Q。

大卫·阿伦堡

如果您正在寻找效率,请尝试data.tableshift功能

library(data.table) # V >= 1.9.5
n <- 2
setDT(df)[, paste("t", 1:n) := shift(t, 1:n)][]
#    t t 1 t 2
# 1: 1  NA  NA
# 2: 2   1  NA
# 3: 3   2   1
# 4: 4   3   2
# 5: 5   4   3
# 6: 6   5   4 

在这里,您可以为新列设置任何名称(在内paste),也不需要将其绑定回原始名称,因为这会使用:=运算符通过引用更新您的数据集

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 xts R 包创建领先的滞后时间序列

来自分类Dev

如何绘制滞后的时间序列?

来自分类Dev

如何在Julia中创建滞后变量?

来自分类Dev

如何在MySQL表中创建2个自动设置的时间戳列?

来自分类Dev

如何在python中从vrt文件创建栅格时间序列

来自分类Dev

如何制作具有一定滞后时间的两个时间序列的相关图

来自分类Dev

在不规则的时间序列中“滞后”

来自分类Dev

如何在时间序列分析(Python)中创建4小时时间间隔

来自分类Dev

如何创建时间序列中最后N个项目的运行平均值?

来自分类Dev

从JSON反序列化后,如何在RealmObjects中自动创建反向引用?

来自分类Dev

如何使用python在时间序列数据中创建3个月的存储桶

来自分类Dev

如何创建一个向量,该向量是时间序列中过去 12 个月值的总和?

来自分类Dev

如何在R中以水平堆积条形图的样式创建时间序列图

来自分类Dev

如何在Access中创建时间序列并可以在查询中使用它

来自分类Dev

如何在R中的时间序列中创建指示开始和结束时间段的变量

来自分类Dev

如何在ggplot中相互绘制两个时间序列?

来自分类Dev

如何在ggplot中相互绘制两个时间序列?

来自分类Dev

如何在MySQL中创建序列?

来自分类Dev

如何在R中创建序列?

来自分类Dev

如何在时间序列数据上创建 facet_grid?

来自分类Dev

如何在hsql中以另一个序列的值开头创建一个新序列?

来自分类Dev

如何在SourceTree中自动创建标签

来自分类Dev

如何在Android中自动创建ImageView

来自分类Dev

如何在Python中自动创建字典

来自分类Dev

如何在本体中自动创建类?

来自分类Dev

如何在R中平均2个时间序列?

来自分类Dev

如何在python中创建n个独立列表?

来自分类Dev

在Julia中按组创建滞后/提前期序列?

来自分类Dev

如何从经济分析数据局的 R 中创建时间序列?

Related 相关文章

  1. 1

    如何使用 xts R 包创建领先的滞后时间序列

  2. 2

    如何绘制滞后的时间序列?

  3. 3

    如何在Julia中创建滞后变量?

  4. 4

    如何在MySQL表中创建2个自动设置的时间戳列?

  5. 5

    如何在python中从vrt文件创建栅格时间序列

  6. 6

    如何制作具有一定滞后时间的两个时间序列的相关图

  7. 7

    在不规则的时间序列中“滞后”

  8. 8

    如何在时间序列分析(Python)中创建4小时时间间隔

  9. 9

    如何创建时间序列中最后N个项目的运行平均值?

  10. 10

    从JSON反序列化后,如何在RealmObjects中自动创建反向引用?

  11. 11

    如何使用python在时间序列数据中创建3个月的存储桶

  12. 12

    如何创建一个向量,该向量是时间序列中过去 12 个月值的总和?

  13. 13

    如何在R中以水平堆积条形图的样式创建时间序列图

  14. 14

    如何在Access中创建时间序列并可以在查询中使用它

  15. 15

    如何在R中的时间序列中创建指示开始和结束时间段的变量

  16. 16

    如何在ggplot中相互绘制两个时间序列?

  17. 17

    如何在ggplot中相互绘制两个时间序列?

  18. 18

    如何在MySQL中创建序列?

  19. 19

    如何在R中创建序列?

  20. 20

    如何在时间序列数据上创建 facet_grid?

  21. 21

    如何在hsql中以另一个序列的值开头创建一个新序列?

  22. 22

    如何在SourceTree中自动创建标签

  23. 23

    如何在Android中自动创建ImageView

  24. 24

    如何在Python中自动创建字典

  25. 25

    如何在本体中自动创建类?

  26. 26

    如何在R中平均2个时间序列?

  27. 27

    如何在python中创建n个独立列表?

  28. 28

    在Julia中按组创建滞后/提前期序列?

  29. 29

    如何从经济分析数据局的 R 中创建时间序列?

热门标签

归档