adapt Bruno method into package, add 'operational' mode
[talweg.git] / pkg / R / F_Average.R
index 6cd2d6e..bee1974 100644 (file)
@@ -23,6 +23,7 @@ AverageForecaster = R6::R6Class("AverageForecaster",
                        first_day = max(1, today-memory)
                        index <- today
                        nb_no_na_series = 0
+                       opera = ifelse(hasArg("opera"), list(...)$opera, FALSE)
                        repeat
                        {
                                index = index - 7
@@ -35,6 +36,23 @@ AverageForecaster = R6::R6Class("AverageForecaster",
                                        nb_no_na_series = nb_no_na_series + 1
                                }
                        }
+                       if (!opera)
+                       {
+                               # The same, in the future
+                               index <- today
+                               repeat
+                               {
+                                       index = index + 7
+                                       if (index > data$getSize())
+                                               break
+                                       serie_on_horizon = data$getCenteredSerie(index)[predict_from:horizon]
+                                       if (!any(is.na(serie_on_horizon)))
+                                       {
+                                               avg = avg + serie_on_horizon
+                                               nb_no_na_series = nb_no_na_series + 1
+                                       }
+                               }
+                       }
                        avg / nb_no_na_series
                }
        )