R/import_rbind.R

Defines functions import_rbind

Documented in import_rbind

#' Import Datasets
#'
#' Importation de plusieurs datasets, puis `rbind()`.
#'
#' @param path Emplacement du répertoire sur le disque dur où se trouve les datasets à importer et à fusionner.
#' @param ext Extension des fichiers. Les valeurs possibles sont `rds`, `csv` et `txt`.
#' @param filesname Nom des datasets (sans extension) à importer. `NULL` implique l'importation de tous les datasets existant.
#' @param orderCols Tri en order croissant les colonnes du dataset créé (si non `NULL`).
#'
#' @return data.table créé à partir de tous les datasets importés.
#' @importFrom data.table fread
#' @importFrom stringr str_remove
#' @export
import_rbind <- function(path = getwd(), ext = "rds", filesname = NULL, orderCols = NULL){
  if(is.null(filesname)) filesname <- str_remove(list.files(path), paste0(".",ext))  # liste des fichiers qui existe dans le dossier (sans extension)
  dt <- data.table()  # tableau où sera stocké les datasets importés
  for(name in paste0(filesname,".",ext)){
    if(ext=="rds"){  # si c'est un fichier RDS
      dt <- rbind(
        dt,
        as.data.table(readRDS(paste0(path,"/",name)))
      )
    } else if(ext %in% c("txt", "csv")){  # si c'est un fichier texte ou csv
      dt <- rbind(
        dt,
        fread(paste0(path,"/",name))
      )
    } else {
      stop(paste0(ext," n'est pas une valeur permise de 'ext'."))
    }
  }
  if(!is.null(orderCols)) setorderv(dt, orderCols)  # tri
  return(dt)
}
guiboucher/INESSS-inesss documentation built on April 20, 2020, 10:47 p.m.