opóźnione dane panelu z danymi.table

Obecnie używam danych paneludata.table W następujący sposób:

require(data.table)
x <- data.table(id=1:10, t=rep(1:10, each=10), v=1:100)
setkey(x, id, t) #so that things are in increasing order
x[,lag_v:=c(NA, v[1:(length(v)-1)]),by=id]

Zastanawiam się, czy jest lepszy sposób, aby to zrobić? Znalazłem coś online na temat łączenia krzyżowego, co ma sens. Jednak połączenie krzyżowe wygenerowałoby dość dużedata.table dla dużego zbioru danych, więc nie jestem skłonny go użyć.

questionAnswers(1)

yourAnswerToTheQuestion