X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FData.R;h=18c67dd0f7c193ca1bba301307346b589b047a86;hb=35eb1443d0ae161c730e371e08e576754ec0084d;hp=d4609f20082f0939f3cdd5128381240a6c5de683;hpb=1e20780ee1505fac6c7ed68d340892c497524561;p=talweg.git diff --git a/pkg/R/Data.R b/pkg/R/Data.R index d4609f2..18c67dd 100644 --- a/pkg/R/Data.R +++ b/pkg/R/Data.R @@ -1,52 +1,36 @@ -#' @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) @@ -95,3 +79,19 @@ Data = setRefClass( } ) ) + +#' 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)