在R中延迟时间序列

时间:2017-07-04 17:09:27

标签: r csv time-series

我有一个专栏" y1"我试图获取对数差异,然后找到滞后1,2,3和4.

$('#form').on('submit')
  

我期待一旦我记录了对数差异,第一个值就会丢失并被" NA"取代。此外,我期待前两个值将是" NA"一旦我把延迟-1用于系列等等。任何帮助将不胜感激。先感谢您。

1 个答案:

答案 0 :(得分:1)

您需要将时间数据附加到您的值,才能正确使用lag。然后,在时间序列的时间部分中完成移位,同时值保持不变。这是一个例子。

myTs <- ts(dat$y1, start = c(2000, 2), frequency = 12)

myTs
#         Feb    Mar    Apr    May    Jun    Jul    Aug    Sep
# 2000 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag(myTs, 1)
#         Jan    Feb    Mar    Apr    May    Jun    Jul    Aug
# 2000 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag(myTs, -3)
#         May    Jun    Jul    Aug    Sep    Oct    Nov    Dec
# 2000 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag也定义为(numeric)向量,但行为有所不同。转换被保存为(开始/结束/步长)属性,但结果很难在以后使用(至少对我而言)

y1 <- dat$y1

y1
# [1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25

lag(y1, 1)
# [1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25
# attr(,"tsp")
# [1] 0 7 1

lag(y1, -3)
# [1] 125.25 145.23 588.23 244.12 100.25 585.00 782.25  12.25
# attr(,"tsp")
# [1]  4 11  1