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.