after merg
[talweg.git] / pkg / R / J_Persistence.R
index 9e56742..8298a89 100644 (file)
 #'
 #' @aliases J_Persistence
 #'
-getPersistenceJumpPredict = function(data, today, memory, horizon, params, ...)
+getPersistenceJumpPredict = function(data, today, memory, predict_from,
+       horizon, params, ...)
 {
        #return gap between end of similar day curve and first day of tomorrow (in the past)
        first_day = max(1, today-memory)
        same_day = ifelse(hasArg("same_day"), list(...)$same_day, TRUE)
-       index = today - ifelse(same_day,7,1)
+       index <- today
        repeat
        {
-               {
-                       last_serie_end = tail( data$getSerie(index), 1)
-                       last_tomorrow_begin = head( data$getSerie(index+1), 1)
-                       index = index - ifelse(same_day,7,1)
-               };
-               if (!is.na(last_serie_end) && !is.na(last_tomorrow_begin))
-                       return (last_tomorrow_begin - last_serie_end);
+               # If 'same_day', get the last known future of similar day
+               index = index - ifelse(same_day,7,1)
                if (index < first_day)
                        return (NA)
+               gap <-
+                       if (predict_from >= 2)
+                               data$getSerie(index)[predict_from] - data$getSerie(index)[predict_from-1]
+                       else
+                               head(data$getSerie(index),1) - tail(data$getSerie(index-1),1)
+               if (!is.na(gap))
+                       return (gap)
        }
 }