私は DataFrame でいくつかの変数を遅らせようとしています (そして明示的に時系列の使用を避けています)、そして面白い結果を得ています。正確には、多数のラグを 1 つのオブジェクトにまとめようとしています。つまり、「注文」と呼ばれる列の 1 期間と 2 期間のラグです。これが私がやっていることです:
time=18:29
orders=c(76,77,78,79,72,81,79,85,93,81,72,60)
data=data.frame(time=time,orders=orders)
lagage<-lag(data$orders, k=-1:-2)
Error in `tsp<-`(`*tmp*`, value = p - (k/p[3L]) * c(1, 1, 0)) :
invalid time series parameters specified
In addition: Warning messages:
1: In if (k != round(k)) { :
the condition has length > 1 and only the first element will be used
2: In (k/p[3L]) * c(1, 1, 0) :
longer object length is not a multiple of shorter object length
これまでに何度も lag() 関数を問題なく使用してきたため、このエラーが発生する理由にかなり混乱しています。多分それは私の側の脳のおならですが、何が起こっているのかを確認したかったのです。
編集
ここでもっと明確にする必要がありました-NAによるラグの影響を受けるインデックスを埋めようとしています。上で示した遅延は、次のように、データフレームを Zoo オブジェクトに強制します。
data<-as.zoo(data)
lagage<-lag(data$orders, k=-1:-3)
lag-1 lag-2 lag-3
2 76 NA NA
3 77 76 NA
4 78 77 76
5 79 78 77
6 72 79 78
7 81 72 79
8 79 81 72
9 85 79 81
10 93 85 79
11 81 93 85
12 72 81 93
もちろん、新しいデータをデータ フレームに強制的に戻すことはできますが、これらの手順は避けたいと考えています。