3 #' Forecast encapsulation
6 #' @importFrom R6 R6Class
8 #' @field .pred List with \itemize{
9 #' \item serie: forecasted serie
10 #' \item params: corresponding list of parameters (weights, neighbors...)
11 #' \item index_in_data: corresponding index in data object}
12 #' @field .dates vector of day indices where forcast occurs
16 #' \item{\code{initialize(dates)}}{
17 #' Initialize a Forecast object with a series of date indices.}
18 #' \item{\code{getSize()}}{
19 #' Return number of individual forecasts.}
20 #' \item{\code{append(forecast, params, index_in_data)}}{
21 #' Acquire an individual forecast, with its (optimized) parameters and the
22 #' corresponding index in the dataset.}
23 #' \item{\code{getDates()}}{
24 #' Get dates where forecast occurs.}
25 #' \item{\code{getForecast(index)}}{
26 #' Get forecasted serie at specified index.}
27 #' \item{\code{getParams(index)}}{
28 #' Get parameters at specified index (for 'Neighbors' method).}
29 #' \item{\code{getIndexInData(index)}}{
30 #' Get index in data which corresponds to current forecast.}
33 Forecast = R6::R6Class("Forecast",
36 .dates = integer(0) #store dates as integers (from 1970-01-01)
39 initialize = function(dates)
41 private$.dates <- dates
47 append = function(forecast, params, index_in_data)
49 private$.pred[[length(private$.pred)+1]] <-
50 list("forecast"=forecast, "params"=params, "index_in_data"=index_in_data)
53 as.Date( private$.dates, origin="1970-01-01" )
55 getForecast = function(index)
58 index = match(index, private$.dates)
59 private$.pred[[index]]$forecast
61 getParams = function(index)
64 index = match(index, private$.dates)
65 private$.pred[[index]]$params
67 getIndexInData = function(index)
70 index = match(index, private$.dates)
71 private$.pred[[index]]$index_in_data