Этого можно добиться с помощью встроенной функции embed()
, где ее второй аргумент «размерность» эквивалентен тому, что вы назвали «лагом»:
x <- c(NA,NA,1,2,3,4)
embed(x,3)
## returns
[,1] [,2] [,3]
[1,] 1 NA NA
[2,] 2 1 NA
[3,] 3 2 1
[4,] 4 3 2
embed()
обсуждалось в предыдущем ответе Джошуа Рейха. (Обратите внимание, что я добавил х с символами NA, чтобы воспроизвести желаемый результат).
Он не особо хорошо назван, но он довольно полезен и эффективен для операций с скользящими окнами, таких как скользящие суммы и скользящие средние.