cálculos de rolagem em xts por mês

Estou familiarizado com ozoo funçãorollapply que permite fazer cálculos contínuos emzoo ouxts objetos e você pode especificar o incremento de rolamento através doby parâmetro. Estou interessado especificamente em aplicar uma função todos os meses, mas usando todos os dados diários do passado no cálculo. Por exemplo, meu conjunto de dados é assim:

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

Eu gostaria de selecionar o final de cada mês eapply uma função que usa todos os dados diários. Isso não parece que funcionaria comrollapply desde oby argumento seria 30, às vezes, 29 outros meses, etc. Minha idéia atual é:

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)] })

Certamente há uma maneira melhor de fazer isso que seria mais rápido não? Para esclarecer: eu gostaria de usar períodos de sobreposição apenas o rolamento deve ser feito mensalmente.

questionAnswers(3)

yourAnswerToTheQuestion