我試圖延遲DataFrame中的一些變量(並且明確避免使用時間序列),並得到一個有趣的結果。準確地說,我試圖將一些滯後信息組合到一個對象中,即稱爲「訂單」的列的1和2週期延遲。下面是我在做什麼:滯後在R中的多個時間段
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
我很明白爲什麼我得到這個錯誤,因爲我已經沒有問題,使用滯後()函數之前多次混淆。也許這是我的一個大腦放屁,但我想和你們覈對一下,看看發生了什麼。
編輯
應該更清楚這裏 - 我期待填補受影響與來港滯後指標。我上面的我的作品表現出滯後強迫數據幀到動物園對象,像這樣:
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
當然,我可以重新強制新的數據備份到數據幀,但要避免這些步驟。
據我所知,'lag'的'k'參數只接受一個整數。 – joran
你應該意識到'lag'會返回一個時間序列對象,所以如果你明確地試圖避免它(不確定原因?),那可能不是最好的選擇。另外,你確定你想'K'是否定的嗎? –
@RicardoSaporta:我確定他們希望'k'是負面的。 '滯後'使用非常規慣例,即k值的正值滯後於價值。 –