È possibile ottenere questo utilizzando il built-in embed()
funzione, dove il suo secondo argomento 'dimensione' è equivalente a quello che si 'Ho chiamato 'lag':
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()
è stato discusso in un previous answer da Joshua Reich. (Si noti che ho anteposto x con NA per replicare l'output desiderato).
Non è particolarmente indicato ma è piuttosto utile e potente per operazioni che coinvolgono finestre scorrevoli, come somme di rotolamento e medie mobili.
Più in generale: lagmatrix <- function (x, max.lag) {embed (c (rep (NA, max.lag), x), max.lag + 1)} Quindi utilizzare lagmatrix (1: 4,2) –
Grazie per il puntatore alla funzione di incorporamento. Ciò mi ha permesso di risparmiare una grande quantità di tempo di calcolo. –