R/df_meta.R

#Copyright © 2018 RTE Réseau de transport d’électricité

capture_df_meta <- function( x ){
  out <- attributes(x)
  out$names <- NULL
  out$row.names <- NULL
  out$class <- setdiff(out$class, c("data.frame", "tbl_df", "tbl", "data.table"))
  out
}

add_df_meta <- function( meta, key, value ){
  meta[[key]] <- value
  meta
}

new_df_meta <- function( ){
  meta <- list(
    class = character(0) )
  meta
}

restore_df_meta <- function( x, meta, new_class = character(0) ){
  x <- as.data.frame(x)
  class_ <- meta$class
  meta$class <- NULL
  for( att_ in names(meta) )
    attr(x, att_) <- meta[[att_]]
  class(x) <- unique(c(new_class, class_, "data.frame"))
  x
}
rte-antares-rpackage/antaDraft documentation built on May 14, 2019, 2:59 p.m.