#' Average Forecaster #' #' Pointwise average of all series of the same (day of week) days in the past. #' #' @format R6 class, inherits Forecaster #' @alias F_Average #' AverageForecaster = R6::R6Class("AverageForecaster", inherit = Forecaster, public = list( predictShape = function(data, today, memory, horizon, ...) { avg = rep(0., horizon) first_day = max(1, today-memory) index = today-7 + 1 nb_no_na_series = 0 repeat { { serie_on_horizon = data$getCenteredSerie(index)[1:horizon] index = index - 7 }; if (!any(is.na(serie_on_horizon))) { avg = avg + serie_on_horizon nb_no_na_series = nb_no_na_series + 1 }; if (index < first_day) break } avg / nb_no_na_series } ) )