R/copy_dt.R

Defines functions copy_dt

Documented in copy_dt

#' Copier data dans une fonction
#'
#' Permet d'utiliser le package `data.table` dans une fonction.
#'
#' Puisque les fonctions d'un `data.table` modifient un tableau par référence, il arrive parfois qu'on modifie un tableau sans le vouloir : notre résultat et le tableau utilisé comme référence. Pour éviter de modifier le tableau de référence à partir d'une fonction, on doit faire une copie du tableau intrant.
#'
#' @param data Dataset de référence à utiliser dans une fonction.
#'
#' @return data.table, copy.
#' @import data.table
#' @export
#' @examples
#' dt <- data.table(ID = 1:5)
#' f1 <- function(dt){
#'   dt <- copy_dt(dt)
#'   dt[, col1 := "f1"]
#'   return(dt)
#' }
#' dt2 <- f1(dt)
copy_dt <- function(data){
  if(is.data.table(data)){
    return(copy(data))
  } else {
    return(as.data.table(data))
  }
}
guiboucher/INESSS-inesss documentation built on April 20, 2020, 10:47 p.m.