Skip to content
Snippets Groups Projects
Select Git revision
  • a58ec3c79d146f7c2f68d805eb70f5ad6ce53729
  • master default protected
  • feature/quantileforecast
  • develop
  • add_kseq
5 results

data.list.R

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    data.list.R 15.89 KiB
    # Do this in a separate tmp.R file to check the documentation
    # library(devtools)
    # document()
    # load_all(as.package("../../onlineforecast"))
    # ?as.data.list
    # ?data.list
    #?as.data.list.data.frame
    
    
    #' Make a data.list of the vectors and data.frames given.
    #'
    #' See the vignette 'setup-data' on how a data.list must be setup.
    #' 
    #' It's simply a list of class \code{data.list} holding:
    #'   - vector \code{t}
    #'   - vector(s) of observations
    #'   - data.frames (or matrices) of forecast inputs
    #' 
    #' 
    #' @title Make a data.list
    #' @param ... Should hold: time t, observations as vectors and forecasts as data.frames
    #' @return a data.list.
    #' @examples
    #' # Put together a data.list
    #' # The time vector
    #' time <- seq(ct("2019-01-01"),ct("2019-01-02"),by=3600)
    #' # Observations time series (as vector)
    #' xobs <- rnorm(length(time))
    #' # Forecast input as data.frame
    #' X <- data.frame(matrix(rnorm(length(time)*3), ncol=3))
    #' names(X) <- pst("k",1:3)
    #' 
    #' D <- data.list(t=time, xobs=xobs, X=X)
    #'
    #' # Check it
    #' check(D)
    #' 
    #' @export
    data.list <- function(...) {
        structure(list(...), class = "data.list")
    }
    
    
    #' Take a subset of a data.list.
    #'
    #' Different arguments can be given to select the subset. See the examples.
    #' 
    #' @title Take a subset of a data.list.
    #' @param x The data.list to take a subset of.
    #' @param subset Given as the integer indexes or a logical vector, or alternatively \code{c(tstart,tend)}, where tstart and tend are either as POSIX or characters.
    #' @param nms The names of the variables in \code{x} to be included.
    #' @param kseq The k horizons of forecasts to be included.
    #' @param lagforecasts Should the forecasts be lagged k steps (thus useful for plotting etc.).
    #' @param pattern Regex pattern applied to select the variables in x to be included.
    #' @param ... Not implemented.
    #' @return a data.list with the subset.
    #' @examples
    #' # Use the data.list with building heat load 
    #' D <- Dbuilding
    #' # Take a subset for the example
    #' D <- subset(D, 1:10, nms=c("t","Taobs","Ta","Iobs","I"), kseq=1:3)
    #' 
    #' # Take subset index 2:4
    #' subset(D, 2:4)
    #' 
    #' # Take subset for a period
    #' subset(D, c("2010-12-15 02:00","2010-12-15 04:00"))
    #' 
    #' # Cannot request a variable not there
    #' \donttest{try(subset(D, nms=c("x","Ta")))}