intermediate: R6, too slow
[talweg.git] / pkg / R / F_Average.R
index ba0f003..abc88be 100644 (file)
@@ -1,34 +1,13 @@
 #' @include Forecaster.R
 #'
-#' @title Average Forecaster
+#' Average Forecaster
 #'
-#' @description Return the (pointwise) average of the all the (similar) centered day curves
-#'   in the past. Inherits \code{\link{Forecaster}}
-AverageForecaster = setRefClass(
-       Class = "AverageForecaster",
-       contains = "Forecaster",
+#' Return the (pointwise) average of the all the (similar) centered day curves
+#' in the past. Inherits \code{\link{Forecaster}}
+AverageForecaster = R6::R6Class("AverageForecaster",
+       inherit = "Forecaster",
 
-       methods = list(
-               initialize = function(...)
-               {
-                       callSuper(...)
-               },
-               predict = function(today, memory, horizon, ...)
-               {
-                       predicted_shape = predictShape(today, memory, horizon, ...)
-                       #Take care of never passing same_day==FALSE (when pjump == Persistence)
-                       predicted_delta =
-                               if (#as.character(substitute(pjump))=="Persistence" && #TODO: doesn't work
-                                       hasArg("same_day") && list(...)$same_day==FALSE)
-                               {
-                                       args = list(...)
-                                       args$same_day = TRUE
-                                       do.call(pjump, append(list("today"=today,"memory"=memory,"horizon"=horizon), args))
-                               }
-                               else
-                                       pjump(data, today, memory, horizon, params, ...)
-                       predicted_shape + tail(data$getSerie(today),1) - predicted_shape[1] + predicted_delta
-               },
+       public = list(
                predictShape = function(today, memory, horizon, ...)
                {
                        avg = rep(0., horizon)