X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FJ_Neighbors.R;h=2caedc58954a16721fd107e1b69647e37a272930;hb=9e0f25f6d5c73008c0ad59ea7b7e097b342f26b3;hp=5a818ca6f1963a77d801310746c3eddb40ad4a8a;hpb=102bcfda4afbb5cfee885cbee0f55545624168fd;p=talweg.git diff --git a/pkg/R/J_Neighbors.R b/pkg/R/J_Neighbors.R index 5a818ca..2caedc5 100644 --- a/pkg/R/J_Neighbors.R +++ b/pkg/R/J_Neighbors.R @@ -8,20 +8,21 @@ #' @inheritParams computeForecast #' @inheritParams getZeroJumpPredict #' -#' @alias J_Neighbors +#' @aliases J_Neighbors #' -getNeighborsJumpPredict = function(data, today, memory, horizon, params, ...) +getNeighborsJumpPredict = function(data, today, memory, predict_from, horizon, + params, ...) { first_day = max(1, today-memory) filter = (params$indices >= first_day) indices = params$indices[filter] weights = params$weights[filter] - if (any(is.na(weights) | is.na(indices))) - return (NA) - gaps = sapply(indices, function(i) { - head( data$getSerie(i+1), 1) - tail( data$getSerie(i), 1) + if (predict_from >= 2) + data$getSerie(i)[predict_from] - data$getSerie(i)[predict_from-1] + else + head(data$getSerie(i),1) - tail(data$getSerie(i-1),1) }) scal_product = weights * gaps norm_fact = sum( weights[!is.na(scal_product)] )