Commit | Line | Data |
---|---|---|
f17665c7 | 1 | #' Data |
3d69ff21 | 2 | #' |
f17665c7 | 3 | #' Data encapsulation |
3d69ff21 BA |
4 | #' |
5 | #' @field data List of | |
6 | #' \itemize{ | |
7 | #' \item time: vector of times | |
8 | #' \item serie: centered series | |
9 | #' \item level: corresponding levels | |
f17665c7 | 10 | #' \item exo: exogenous variables |
3d69ff21 | 11 | #' \item exo_hat: predicted exogenous variables |
3d69ff21 BA |
12 | #' } |
13 | #' | |
f17665c7 BA |
14 | #' @docType class |
15 | #' @importFrom R6 R6Class | |
16 | #' | |
17 | #' @export | |
25b75559 | 18 | Data = R6::R6Class("Data", |
35eb1443 | 19 | private = list( |
25b75559 | 20 | .data = list() |
35eb1443 | 21 | ), |
f17665c7 | 22 | public = list( |
3d69ff21 | 23 | getSize = function() |
25b75559 | 24 | getSizeData(private) |
35eb1443 | 25 | , |
e030a6e3 | 26 | getStdHorizon = function() |
25b75559 | 27 | getStdHorizonData(private) |
66877df3 BA |
28 | , |
29 | append = function(new_time, new_centered_serie, new_level, new_exo, new_exo_hat) | |
25b75559 | 30 | appendData(private, new_time, new_centered_serie, new_level, new_exo, new_exo_hat) |
35eb1443 | 31 | , |
3d69ff21 | 32 | getTime = function(index) |
25b75559 | 33 | getTimeData(self, private, index) |
66877df3 | 34 | , |
3d69ff21 | 35 | getCenteredSerie = function(index) |
25b75559 | 36 | getCenteredSerieData(self, private, index) |
66877df3 | 37 | , |
3d69ff21 | 38 | getLevel = function(index) |
25b75559 | 39 | getLevelData(self, private, index) |
66877df3 | 40 | , |
3d69ff21 | 41 | getSerie = function(index) |
25b75559 | 42 | getSerieData(self, private, index) |
66877df3 | 43 | , |
1e20780e | 44 | getExo = function(index) |
25b75559 | 45 | getExoData(self, private, index) |
66877df3 BA |
46 | , |
47 | getExoHat = function(index) | |
25b75559 | 48 | getExoHatData(self, private, index) |
3d69ff21 BA |
49 | ) |
50 | ) | |
35eb1443 | 51 | |
35eb1443 | 52 | #' Number of series in the dataset |
25b75559 BA |
53 | #' |
54 | #' @param private List of private members in current object | |
55 | getSizeData = function(private) | |
35eb1443 BA |
56 | length(private$.data) |
57 | ||
58 | #' 'Standard' horizon, from t+1 to midnight | |
25b75559 BA |
59 | #' |
60 | #' @inheritParams getSizeData | |
61 | getStdHorizonData = function(private) | |
35eb1443 BA |
62 | 24 - as.POSIXlt( private$.data[[1]]$time[1] )$hour + 1 |
63 | ||
64 | #' Acquire a new vector of lists (time, centered_serie, level, exo, exo_hat) | |
25b75559 BA |
65 | #' |
66 | #' @inheritParams getSizeData | |
67 | #' @param new_time Time | |
68 | #' @param new_centered_serie Centered serie | |
69 | #' @param new_level Level | |
70 | #' @param new_exo Exogneous variables | |
71 | #' @param new_exo_hat Predicted exogenous variables | |
72 | appendData = function(private, new_time, new_centered_serie, new_level, new_exo, new_exo_hat) | |
66877df3 | 73 | { |
25b75559 | 74 | private$.data[[length(private$.data)+1]] <- list("time"=new_time, |
66877df3 BA |
75 | "centered_serie"=new_centered_serie,"level"=new_level,"exo"=new_exo,"exo_hat"=new_exo_hat) |
76 | } | |
77 | ||
78 | #' Time values at specified index | |
25b75559 BA |
79 | #' |
80 | #' @inheritParams getSizeData | |
81 | #' @param index Return value at this index | |
82 | getTimeData = function(o, private, index) | |
66877df3 BA |
83 | { |
84 | index = dateIndexToInteger(index, o) | |
85 | private$.data[[index]]$time | |
86 | } | |
87 | ||
88 | #' Centered serie values at specified index | |
25b75559 BA |
89 | #' |
90 | #' @inheritParams getTimeData | |
91 | getCenteredSerieData = function(o, private, index) | |
66877df3 BA |
92 | { |
93 | index = dateIndexToInteger(index, o) | |
25b75559 | 94 | private$.data[[index]]$centered_serie |
66877df3 BA |
95 | } |
96 | ||
97 | #' Level of the serie at specified index | |
25b75559 BA |
98 | #' |
99 | #' @inheritParams getTimeData | |
100 | getLevelData = function(o, private, index) | |
66877df3 BA |
101 | { |
102 | index = dateIndexToInteger(index, o) | |
103 | private$.data[[index]]$level | |
104 | } | |
105 | ||
106 | #' Serie values (centered+level) at specified index | |
25b75559 BA |
107 | #' |
108 | #' @inheritParams getTimeData | |
109 | getSerieData = function(o, private, index) | |
66877df3 BA |
110 | { |
111 | index = dateIndexToInteger(index, o) | |
25b75559 | 112 | private$.data[[index]]$centered_serie + data[[index]]$level |
66877df3 BA |
113 | } |
114 | ||
115 | #' Exogenous measures at specified index | |
25b75559 BA |
116 | #' |
117 | #' @inheritParams getTimeData | |
118 | getExoData = function(o, private, index) | |
66877df3 BA |
119 | { |
120 | index = dateIndexToInteger(index, o) | |
121 | private$.data[[index]]$exo | |
122 | } | |
123 | ||
124 | #' Exogeous predictions at specified index | |
25b75559 BA |
125 | #' |
126 | #' @inheritParams getTimeData | |
127 | getExoHatData = function(o, private, index) | |
66877df3 BA |
128 | { |
129 | index = dateIndexToInteger(index, o) | |
130 | private$.data[[index]]$exo_hat | |
131 | } |