fixes and improvements
[talweg.git] / R / D_Persistence.R
index 2f7935a..979bf05 100644 (file)
@@ -4,6 +4,19 @@
 #' @inheritParams getZeroDeltaForecast
 getPersistenceDeltaForecast = function(data, today, memory, horizon, shape_params, ...)
 {
-       # Return level of last similar "tomorrow" (thus -6) computed on "horizon"
-       data$getSerie(today-6)[1] - tail(data$getSerie(today-7), 1)
+       #return gap between end of similar day curve and first day of tomorrow (in the past)
+       first_day = max(1, today-memory)
+       index = today-7
+       repeat
+       {
+               {
+                       last_similar_serie_end = tail( data$getCenteredSerie(index), 1)
+                       last_similar_tomorrow_begin = data$getCenteredSerie(index+1)[1]
+                       index = index - 7
+               };
+               if (!is.na(last_similar_serie_end) && !is.na(last_similar_tomorrow_begin))
+                       return (last_similar_tomorrow_begin - last_similar_serie_end);
+               if (index < first_day)
+                       return (NA)
+       }
 }