【发布时间】:2019-06-27 17:21:30
【问题描述】:
我需要动态创建 'n' 个变量,原始变量的滞后从 1 到 'n'。像这样的东西:- 原始变量
DatePeriod, value
2/01/2018,6
3/01/2018,4
4/01/2018,0
5/01/2018,2
6/01/2018,4
7/01/2018,1
8/01/2018,6
9/01/2018,2
10/01/2018,7
Lagged 1 variable
2/01/2018,NA
3/01/2018,6
4/01/2018,4
5/01/2018,0
6/01/2018,2
7/01/2018,4
8/01/2018,1
9/01/2018,6
10/01/2018,2
11/01/2018,7
Lagged 2 variable
2/01/2018,NA
3/01/2018,NA
4/01/2018,6
5/01/2018,4
6/01/2018,0
7/01/2018,2
8/01/2018,4
9/01/2018,1
10/01/2018,6
11/01/2018,2
12/01/2018,7
Lagged 3 variable
2/01/2018,NA
3/01/2018,NA
4/01/2018,NA
5/01/2018,6
6/01/2018,4
7/01/2018,0
8/01/2018,2
9/01/2018,4
10/01/2018,1
11/01/2018,6
12/01/2018,2
13/01/2018,7
等等
我尝试使用 shift 功能和其他各种功能。其中大多数对我有用,滞后变量在原始变量的最后一个日期完成。也就是说,滞后变量的长度与原始变量的长度相同。
我正在寻找的新滞后变量将被“kth”滞后下移,数据系列将被“k”元素(包括索引)扩展。
我需要这个的原因是能够使用回归系数和样本内周期之外的相应滞后变量值来计算因变量的值
y1 <- Lag(ciresL1_usage_1601_1612, shift = 1)
head(y1)
2016-01-02 2016-01-03 2016-01-04 2016-01-05 2016-01-06 2016-01-07
NA -5171.051 -6079.887 -3687.227 -3229.453 -2110.368
y2 <- Lag(ciresL1_usage_1601_1612, shift = 2)
head(y2)
2016-01-02 2016-01-03 2016-01-04 2016-01-05 2016-01-06 2016-01-07
NA NA -5171.051 -6079.887 -3687.227 -3229.453
tail(y2)
2016-12-26 2016-12-27 2016-12-28 2016-12-29 2016-12-30 2016-12-31
-2316.039 -2671.185 -4100.793 -2043.020 -1147.798 1111.674
tail(ciresL1_usage_1601_1612)
2016-12-26 2016-12-27 2016-12-28 2016-12-29 2016-12-30 2016-12-31
-4100.793 -2043.020 -1147.798 1111.674 3498.729 2438.739
有没有办法相对容易地做到这一点。我知道我可以通过循环并在新向量中添加“k”行并将数据重新加载到这个新向量中来适当地移动新向量中的数据值,但我不想使用该方法,除非我必须.我有信心一定有比这更好的方法!
顺便说一下,对象是一个以每日日期为索引的动物园对象。
最好的问候
迪帕克
【问题讨论】:
标签: r