Sie dies erreichen können mit dem eingebauten in embed()
Funktion, wo sein zweites ‚Dimension‘ Argument, was Sie entspricht Lag 'habe genannt':
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()
wurde in einem previous answer von Joshua Reich diskutiert. (Beachten Sie, dass ich x mit NAs vorangestellt habe, um die gewünschte Ausgabe zu replizieren).
Es ist nicht besonders gut benannt, aber es ist sehr nützlich und leistungsfähig für Operationen mit gleitenden Fenstern, wie rollende Summen und gleitende Durchschnitte.
Allgemeiner: Lagmatrix <- Funktion (x, max.Lage) {Einbetten (c (rep (NA, max.Lage), x), max.Lage + 1)} Dann Lagmatrix (1: 4,2) –
Danke für den Zeiger auf die Embed-Funktion. Das hat mir eine Menge Rechenzeit gespart. –