我想要不同组的上一行值。我已经完成了here给出的解决方案,并尝试了下面显示的代码。
new_data[,avg_week := shift(.(avg_travel_time),type = "lag"), by = identifier]
这是我得到的错误。
Error in `[.data.frame`(new_data, , `:=`(avg_week, c(NA, avg_travel_time[-.N])), :
unused argument (by = identifier)
答案 0 :(得分:0)
OP代码中存在两个问题:1)数据集是data.frame
而不是data.table
,2 .(
在shift
内使用这不是必需的。在应用data.table
语法之前,我们需要先转换为setDT(new_data)
(data.table
setDT(new_data)[,avg_week := shift(avg_travel_time, type = "lag"), by = identifier]