fortlaufende Berechnungen in xts pro Monat

Ich bin vertraut mit demzoo Funktionrollapply Damit können Sie fortlaufende Berechnungen durchführenzoo oderxts Objekte und Sie können das Rollinkrement über dieby Parameter. Ich bin speziell daran interessiert, jeden Monat eine Funktion anzuwenden, aber alle bisherigen täglichen Daten in die Berechnung einzubeziehen. Angenommen, mein Datensatz sieht folgendermaßen aus:

dte, val
1/01/2001, 10
1/02/2001, 11
...
1/31/2001, 2
2/01/2001, 54
2/02/2001, 34
...
2/30/2001, 29

Ich möchte das Ende eines jeden Monats auswählen undapply eine Funktion, die alle täglichen Daten verwendet. Dies scheint nicht so, als würde es funktionierenrollapply seit derby Argument wäre 30 manchmal, 29 andere Monate, etc. Meine aktuelle Idee ist:

f <- function(xts_obj) { coef(lm(a ~ b, data=as.data.frame(xts_obj)))[1] }
month_end <- endpoints(my_xts, on="months", k=1)
rslt <- apply(month_end, 1, function(idx) { my_xts[paste0("/",idx)] })

Sicherlich gibt es einen besseren Weg, dies zu tun, der schneller gehen würde, nein? Zur Verdeutlichung: Ich möchte Überlappungsperioden verwenden, nur das Rollen sollte monatlich erfolgen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage