R 计算非平衡时间序列数据表中的滞后变量

R 计算非平衡时间序列数据表中的滞后变量,r,data.table,time-series,R,Data.table,Time Series,如何在不平衡时间序列表(时间间隔不均匀)中创建滞后变量? 从数据表- ts = data.table(time=c(10,15,22,25,28),value=c(7,2,14,22,11), key="time") 如何通过time-5创建value的滞后变量value\u lagged time value value_lagged 10 7 NA 15 2 7 22 14 2 25 22 2 28 11 14 我通常的解决方案是创建一个巨大的交叉连接表,然后使用“by”+“min”返回

如何在不平衡时间序列表(时间间隔不均匀)中创建滞后变量? 从数据表-

ts = data.table(time=c(10,15,22,25,28),value=c(7,2,14,22,11), key="time")
如何通过
time-5
创建
value
的滞后变量
value\u lagged

time value value_lagged
10 7 NA
15 2 7
22 14 2
25 22 2
28 11 14
我通常的解决方案是创建一个巨大的交叉连接表,然后使用“by”+“min”返回初始状态,但这对1M表不起作用


这个问题在这里有答案,但太难找到。

这是阿伦评论中的复制粘贴

对于LEAD,您只需更改标志-

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

只需通过引用发布该评论作为答案的人来发布该评论。或者,如果你想以问答的方式发表文章,那么就要包含比问题正文更多的细节。不仅仅是一个链接。我已经在这个问题上跌跌撞撞了三年了,每次花一个小时左右的时间来找出最快的解决方案,因为阿伦没有评论不太容易找到,最好在这里达成一致。但是,你不认为你的“问题”没有如此清楚地反映问题吗。只是让它成为一个可复制的例子,有更多的细节。同样,不要只发布链接。这会让你的问题在一段时间后迷失。除非你只想为自己记录。我知道我最终会花更多的时间进行编辑:)无论如何,谢谢你强迫我,现在它更容易阅读,所以你是说这实际上只是一个副本?
ts[, value_lead := ts[.(time=time+5), value, roll=-Inf, rollends=TRUE, mult="first", on="time"]]