Hinterher Variablen in R
Was ist der effizienteste Weg, um eine matrix der verzögerten Variablen in R, für eine beliebige variable (d.h. nicht regelmäßigen Zeit-Serie)
Beispiel:
Eingang:
x <- c(1,2,3,4)
2 lags, Ausgabe:
[1,NA, NA]
[2, 1, NA]
[3, 2, 1]
[4, 3, 2]
InformationsquelleAutor James in Ottawa | 2009-08-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erreichen dies mit Hilfe des built-in
embed()
Funktion, wo die zweite 'dimension' - argument ist äquivalent zu dem, was Sie genannt habe 'lag':embed()
diskutiert wurde in ein Vorherige Antwort von Joshua Reich. (Beachten Sie, dass ich vorangestellten x mit NAs replizieren Ihre gewünschte Ausgabe).Es ist nicht besonders gut benannt, aber es ist sehr nützlich und leistungsfähig für Operationen mit Schiebefenster, wie Rollen Summen und gleitende Durchschnitte.
Vielen Dank für die Zeiger auf die embed-Funktion. Dies erspart eine große Menge an Rechenzeit für mich.
InformationsquelleAutor medriscoll
Verwenden Sie eine angemessene
class
für Ihre Objekte; base R hatts
die einelag()
Funktion zu bedienen. Beachten Sie, dass diesets
Objekte kamen aus einer Zeit, als 'delta' oder 'Frequenz', wo eine Konstante: die monatlichen oder vierteljährlichen Daten, da in der makroökonomischen Serie.Unregelmäßige Daten wie (business-)täglich, verwenden Sie die zoo oder xts - Pakete, die kann auch (sehr gut!) mit lags. Sie gehen von dort aus weiter mit Paketen können Sie wie dynlm oder dlm ermöglichen dynamische REGRESSIONSMODELLE mit lag.
Die Aufgabe, die Aussicht auf Zeitreihen-Ökonometrie, Finance haben alle weiteren Hinweise.
InformationsquelleAutor Dirk Eddelbuettel
Den
running
Funktion in dergtools
Paket ist mehr oder weniger was Sie wollen:Völlig richtig, das ist der Grund, warum ich von Ihnen positiv bewertet werden die embed () - Lösung als es raus kam =). Aber 'laufen' ist immer noch eine nützliche Funktion wie ich finde --- die meiste Zeit, wenn ich wollte, um die matrix zu erstellen James gefragt, was ich wirklich tun wollte, war, ausführen, anwenden.
InformationsquelleAutor Jonathan Chang
Die Methode, die funktioniert für mich am besten
ist die Verwendung der
lag
Funktion aus derdplyr
Paket.Beispiel:
InformationsquelleAutor I Like to Code