cálculos rodantes en xts por mes
Estoy familiarizado con elzoo
funciónrollapply
lo que le permite hacer cálculos rodantes enzoo
oxts
objetos y puede especificar el incremento rodante a través de laby
parámetro. Estoy específicamente interesado en aplicar una función todos los meses pero utilizando todos los datos diarios anteriores en el cómputo. Por ejemplo, digamos que mi conjunto de datos se ve así:
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
Me gustaría seleccionar el final de cada mes yapply
Una función que utiliza todos los datos diarios. Esto no parece que funcionaría conrollapply
desde elby
el argumento sería 30 a veces, 29 otros meses, etc. Mi idea actual es:
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)] })
Seguramente hay una mejor manera de hacer esto que sería más rápido, ¿no? Para aclarar: me gustaría usar períodos superpuestos, solo el balanceo debe hacerse mensualmente.