X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FForecast.R;h=a0ddcda8070e647047802985bd5b2792a3b6814f;hb=72b9c50162bcdcf6c99fbb8b2ec6ea9ba98379cb;hp=783e3522e5add869ae89e58b80e18680e991c54f;hpb=5d83d8150dc135347d5ef39e5015b88f33fa9ee3;p=talweg.git diff --git a/pkg/R/Forecast.R b/pkg/R/Forecast.R index 783e352..a0ddcda 100644 --- a/pkg/R/Forecast.R +++ b/pkg/R/Forecast.R @@ -8,29 +8,32 @@ #' @field .pred List with \itemize{ #' \item serie: forecasted serie #' \item params: corresponding list of parameters (weights, neighbors...) -#' \item index: corresponding index in data object} +#' \item index_in_data: corresponding index in data object} #' @field .dates vector of day indices where forcast occurs #' -#' @section Methods: \describe{ -#' \item{\code{initialize(dates)}} -#' {Initialize a Forecast object with a series of date indices.} -#' \item{\code{getSize()}} -#' {Return number of individual forecasts.} -#' \item{\code{append(new_serie, new_params, new_index_in_data)}} -#' {Acquire a new individual forecast, with its (optimized) parameters and the corresponding -#' index in the dataset.} -#' \item{\code{getDates()}} -#' {Get dates where forecast occurs.} -#' \item{\code{getSerie(index)}} -#' {Get forecasted serie at specified index.} -#' \item{\code{getParams(index)}} -#' {Get parameters at specified index (for 'Neighbors' method).} -#' \item{\code{getIndexInData(index)}} -#' {Get index in data which corresponds to current forecast.}} +#' @section Methods: +#' \describe{ +#' \item{\code{initialize(dates)}}{ +#' Initialize a Forecast object with a series of date indices.} +#' \item{\code{getSize()}}{ +#' Return number of individual forecasts.} +#' \item{\code{append(forecast, params, index_in_data)}}{ +#' Acquire an individual forecast, with its (optimized) parameters and the +#' corresponding index in the dataset.} +#' \item{\code{getDates()}}{ +#' Get dates where forecast occurs.} +#' \item{\code{getForecast(index)}}{ +#' Get forecasted serie at specified index.} +#' \item{\code{getParams(index)}}{ +#' Get parameters at specified index (for 'Neighbors' method).} +#' \item{\code{getIndexInData(index)}}{ +#' Get index in data which corresponds to current forecast.} +#' } +#' Forecast = R6::R6Class("Forecast", private = list( .pred = list(), - .dates = c() + .dates = integer(0) #store dates as integers (from 1970-01-01) ), public = list( initialize = function(dates) @@ -41,19 +44,19 @@ Forecast = R6::R6Class("Forecast", getSize = function() length(private$.pred) , - append = function(new_serie, new_params, new_index_in_data) + append = function(forecast, params, index_in_data) { private$.pred[[length(private$.pred)+1]] <- - list("serie"=new_serie, "params"=new_params, "index_in_data"=new_index_in_data) + list("forecast"=forecast, "params"=params, "index_in_data"=index_in_data) }, getDates = function() - private$.dates + as.Date( private$.dates, origin="1970-01-01" ) , - getSerie = function(index) + getForecast = function(index) { if (is(index,"Date")) index = match(index, private$.dates) - private$.pred[[index]]$serie + private$.pred[[index]]$forecast }, getParams = function(index) {