improvements, updated report
[talweg.git] / R / F_Persistence.R
index f078484..19cf2e4 100644 (file)
@@ -2,7 +2,7 @@
 #'
 #' @title Persistence Forecaster
 #'
-#' @description Return the last centered last (similar) day curve.
+#' @description Return the last centered (similar) day curve.
 #'   Inherits \code{\link{Forecaster}}
 PersistenceForecaster = setRefClass(
        Class = "PersistenceForecaster",
@@ -15,17 +15,19 @@ PersistenceForecaster = setRefClass(
                },
                predictShape = function(today, memory, horizon, ...)
                {
-                       #return centered last (similar) day curve, avoiding NAs until memory is run
+                       # Return centered last (similar) day curve, avoiding NAs until memory is run
                        first_day = max(1, today-memory)
-                       index = today-7 + 1
+                       same_day = ifelse(hasArg("same_day"), list(...)$same_day, TRUE)
+                       # If 'same_day', get the last known future of similar day: -7 + 1 == -6
+                       index = today - ifelse(same_day,6,0)
                        repeat
                        {
                                {
-                                       last_similar_serie = data$getCenteredSerie(index)[1:horizon]
-                                       index = index - 7
+                                       last_serie = data$getCenteredSerie(index)[1:horizon]
+                                       index = index - ifelse(same_day,7,1)
                                };
-                               if (!any(is.na(last_similar_serie)))
-                                       return (last_similar_serie);
+                               if (!any(is.na(last_serie)))
+                                       return (last_serie);
                                if (index < first_day)
                                        return (NA)
                        }