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 | |
18 | Data = R6Class("Data", | |
35eb1443 BA |
19 | private = list( |
20 | .data = "list" | |
21 | ), | |
f17665c7 | 22 | public = list( |
3d69ff21 | 23 | initialize = function(...) |
35eb1443 BA |
24 | initialize(self, private, ...) |
25 | , | |
3d69ff21 | 26 | getSize = function() |
66877df3 | 27 | getSize(private) |
35eb1443 | 28 | , |
e030a6e3 | 29 | getStdHorizon = function() |
66877df3 BA |
30 | getStdHorizon(private) |
31 | , | |
32 | append = function(new_time, new_centered_serie, new_level, new_exo, new_exo_hat) | |
33 | append(private, new_time, new_centered_serie, new_level, new_exo, new_exo_hat) | |
35eb1443 | 34 | , |
3d69ff21 | 35 | getTime = function(index) |
66877df3 BA |
36 | getTime(self, private, index) |
37 | , | |
3d69ff21 | 38 | getCenteredSerie = function(index) |
66877df3 BA |
39 | getCenteredSerie(self, private, index) |
40 | , | |
3d69ff21 | 41 | getLevel = function(index) |
66877df3 BA |
42 | getLevel(self, private, index) |
43 | , | |
3d69ff21 | 44 | getSerie = function(index) |
66877df3 BA |
45 | getSerie(self, private, index) |
46 | , | |
1e20780e | 47 | getExo = function(index) |
66877df3 BA |
48 | getExo(self, private, index) |
49 | , | |
50 | getExoHat = function(index) | |
51 | getExoHat(self, private, index) | |
3d69ff21 BA |
52 | ) |
53 | ) | |
35eb1443 | 54 | |
66877df3 BA |
55 | ##TODO: @param... @inheritParams... |
56 | ||
35eb1443 | 57 | #' Initialize empty Data object |
66877df3 | 58 | initialize = function(o, private, ...) |
35eb1443 | 59 | { |
66877df3 BA |
60 | private$.data <<- if (hasArg("data")) list(...)$data else list() |
61 | invisible(o) | |
35eb1443 BA |
62 | } |
63 | ||
64 | #' Number of series in the dataset | |
66877df3 | 65 | getSize = function(private) |
35eb1443 BA |
66 | length(private$.data) |
67 | ||
68 | #' 'Standard' horizon, from t+1 to midnight | |
66877df3 | 69 | getStdHorizon = function(private) |
35eb1443 BA |
70 | 24 - as.POSIXlt( private$.data[[1]]$time[1] )$hour + 1 |
71 | ||
72 | #' Acquire a new vector of lists (time, centered_serie, level, exo, exo_hat) | |
66877df3 BA |
73 | append = function(private, new_time, new_centered_serie, new_level, new_exo_hat, new_exo) |
74 | { | |
75 | private$.data[[length(private$.data)+1]] <<- list("time"=new_time, | |
76 | "centered_serie"=new_centered_serie,"level"=new_level,"exo"=new_exo,"exo_hat"=new_exo_hat) | |
77 | } | |
78 | ||
79 | #' Time values at specified index | |
80 | getTime = function(o, private, index) | |
81 | { | |
82 | index = dateIndexToInteger(index, o) | |
83 | private$.data[[index]]$time | |
84 | } | |
85 | ||
86 | #' Centered serie values at specified index | |
87 | getCenteredSerie = function(o, private, index) | |
88 | { | |
89 | index = dateIndexToInteger(index, o) | |
90 | private$.data[[index]]$serie | |
91 | } | |
92 | ||
93 | #' Level of the serie at specified index | |
94 | getCenteredSerie = function(o, private, index) | |
95 | { | |
96 | index = dateIndexToInteger(index, o) | |
97 | private$.data[[index]]$level | |
98 | } | |
99 | ||
100 | #' Serie values (centered+level) at specified index | |
101 | getCenteredSerie = function(o, private, index) | |
102 | { | |
103 | index = dateIndexToInteger(index, o) | |
104 | private$.data[[index]]$serie + data[[index]]$level | |
105 | } | |
106 | ||
107 | #' Exogenous measures at specified index | |
108 | getCenteredSerie = function(o, private, index) | |
109 | { | |
110 | index = dateIndexToInteger(index, o) | |
111 | private$.data[[index]]$exo | |
112 | } | |
113 | ||
114 | #' Exogeous predictions at specified index | |
115 | getCenteredSerie = function(o, private, index) | |
116 | { | |
117 | index = dateIndexToInteger(index, o) | |
118 | private$.data[[index]]$exo_hat | |
119 | } |