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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta