Скользящие вычисления в хтс по месяцам
Я знаком сzoo
функцияrollapply
который позволяет вам делать скользящие вычисления наzoo
или жеxts
объекты, и вы можете указать приращение прокрутки черезby
параметр. Я особенно заинтересован в применении функции каждый месяц, но с использованием всех прошлых ежедневных данных в вычислениях. Например, скажем, мой набор данных выглядит так:
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
Я хотел бы выбрать конец каждого месяца иapply
функция, которая использует все ежедневные данные. Это не похоже, что это будет работать сrollapply
так какby
аргумент будет 30 иногда, 29 других месяцев и т. д. Моя текущая идея:
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)] })
Конечно, есть лучший способ сделать это, который был бы быстрее, нет? Чтобы уточнить: я хотел бы использовать перекрывающиеся периоды, только переход должен быть сделан ежемесячно.