+++ /dev/null
-#' Forecast
-#'
-#' Forecast encapsulation
-#'
-#' @docType class
-#' @importFrom R6 R6Class
-#'
-#' @field .pred List with \itemize{
-#' \item serie: forecasted serie
-#' \item params: corresponding list of parameters (weights, neighbors...)
-#' \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.}
-#' }
-Forecast = R6::R6Class("Forecast",
- private = list(
- .pred = list(),
- .dates = integer(0) #store dates as integers (from 1970-01-01)
- ),
- public = list(
- initialize = function(dates)
- {
- private$.dates <- dates
- invisible(self)
- },
- getSize = function()
- length(private$.pred)
- ,
- append = function(new_serie, new_params, new_index_in_data)
- {
- private$.pred[[length(private$.pred)+1]] <-
- list("serie"=new_serie, "params"=new_params, "index_in_data"=new_index_in_data)
- },
- getDates = function()
- as.Date( private$.dates, origin="1970-01-01" )
- ,
- getSerie = function(index)
- {
- if (is(index,"Date"))
- index = match(index, private$.dates)
- private$.pred[[index]]$serie
- },
- getParams = function(index)
- {
- if (is(index,"Date"))
- index = match(index, private$.dates)
- private$.pred[[index]]$params
- },
- getIndexInData = function(index)
- {
- if (is(index,"Date"))
- index = match(index, private$.dates)
- private$.pred[[index]]$index_in_data
- }
- )
-)