#' Average Forecaster #' #' Return the (pointwise) average of the all the (similar) centered day curves #' in the past. Inherits \code{\link{Forecaster}} #' #' @export 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 } ) )