X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FData.R;h=18c67dd0f7c193ca1bba301307346b589b047a86;hb=35eb1443d0ae161c730e371e08e576754ec0084d;hp=6f82f239b1a1077ab9a41ae434f54b913fd6fb07;hpb=dea7ff860b42b3e246c8fa7ce2fb514561b8bc43;p=talweg.git diff --git a/pkg/R/Data.R b/pkg/R/Data.R index 6f82f23..18c67dd 100644 --- a/pkg/R/Data.R +++ b/pkg/R/Data.R @@ -1,97 +1,97 @@ -#' @title Data +#' Data #' -#' @description Data encapsulation +#' Data encapsulation #' #' @field data List of #' \itemize{ #' \item time: vector of times #' \item serie: centered series #' \item level: corresponding levels +#' \item exo: exogenous variables #' \item exo_hat: predicted exogenous variables -#' \item exo_Dm1: List of measured exogenous variables at day minus 1 #' } #' -#' @exportClass Data -#' @export Data -Data = setRefClass( - Class = "Data", - - fields = list( - data = "list" +#' @docType class +#' @importFrom R6 R6Class +#' +#' @export +Data = R6Class("Data", + private = list( + .data = "list" ), - - methods = list( + public = list( initialize = function(...) - { - "Initialize empty Data object" - - callSuper(...) - }, + initialize(self, private, ...) + , getSize = function() - { - "Number of series in the dataset" - - length(data) - }, + getSize() + , getStdHorizon = function() - { - "'Standard' horizon, from t+1 to midnight" - - L1 = length(data[[1]]$serie) - L2 = length(data[[2]]$serie) - if (L1 < L2) - L2 - L1 - else - L1 - }, + getStdHorizon(self, private) + , append = function(new_time, new_serie, new_level, new_exo_hat, new_exo) - { - "Acquire a new vector of lists (time, serie, level, exo_hat, exo)" + append(self, private, data[[length(data)+1]] <<- list("time"=new_time,"serie"=new_serie,"level"=new_level, "exo_hat"=new_exo_hat,"exo"=new_exo) }, getTime = function(index) { - "Get time values at specified index" + "Time values at specified index" index = dateIndexToInteger(index, .self) data[[index]]$time }, getCenteredSerie = function(index) { - "Get serie values (centered) at specified index" + "Serie values (centered) at specified index" index = dateIndexToInteger(index, .self) data[[index]]$serie }, getLevel = function(index) { - "Get level for the serie at specified index" + "Level of the serie at specified index" index = dateIndexToInteger(index, .self) data[[index]]$level }, getSerie = function(index) { - "Get serie values (centered+level) at specified index" + "Serie values (centered+level) at specified index" index = dateIndexToInteger(index, .self) data[[index]]$serie + data[[index]]$level }, getExoHat = function(index) { - "Get exogeous predictions at specified index" + "Exogeous predictions at specified index" index = dateIndexToInteger(index, .self) data[[index]]$exo_hat }, - getExoDm1 = function(index) + getExo = function(index) { - "Get exogenous measures at the specified index" + "Exogenous measures at specified index" index = dateIndexToInteger(index, .self) data[[index]]$exo } ) ) + +#' Initialize empty Data object +initialize = function(self, private, ...) +{ + invisible(self) +} + +#' Number of series in the dataset +getSize = function(self, private) + length(private$.data) + +#' 'Standard' horizon, from t+1 to midnight +getStdHorizon = function(self, private) + 24 - as.POSIXlt( private$.data[[1]]$time[1] )$hour + 1 + +#' Acquire a new vector of lists (time, centered_serie, level, exo, exo_hat)