簡體   English   中英

計算不平衡時間序列數據中的滯后變量

[英]Calculate lagged variable in unbalanced time series data.table

如何在不平衡的時間序列表(時間間隔不均勻)中創建滯后變量? 從數據表-

ts = data.table(time=c(10,15,22,25,28),value=c(7,2,14,22,11), key="time")

如何在time-5創建value的滯后變量value_lagged

time value value_lagged
10 7 NA
15 2 7
22 14 2
25 22 2
28 11 14

我通常的解決方案是創建一個巨大的交叉聯接表,然后使用'by'+'min'返回初始狀態,但這不適用於1M表。

這個問題在這里有答案-https: //stackoverflow.com/a/36754846/1317325,但很難找到。

這是從這里 Arun的評論復制粘貼

ts[, value_lagged := ts[.(time=time-5), value, roll=+Inf, rollends=TRUE, mult="first", on="time"]]

對於LEAD,您可以更改標志-

ts[, value_lead := ts[.(time=time+5), value, roll=-Inf, rollends=TRUE, mult="first", on="time"]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM