R/mt_split_damir_R.R

Defines functions mt_split_damir_R

Documented in mt_split_damir_R

#' Traitement des donnees DAMIR R
#'
#' @param chemin Une chaine de caractere: Chemin des donnees brutes DAMIR R
#' @param millesime Un double: Annee du millesime traite
#' @param variable Une chaine de caractere: Nom de la variable contenant le code du departement
#' @param i Un double: Mois traite
#' @param ecriture Booleen Par defaut TRUE. Permet d'ecrire dans le dossier initial. Le desactiver n'a d'interet que pour les tests
#'
#' @return NULL. Cette fonction decoupe la table initiale pour en faire de petites par departements a l'emplacement initial
#' @export
#'
#' @examples
#' chemin_data_init_damir_R = system.file("extdata",package = "medtRucks")
#' millesime_damir_R = 2020
#' variable_nom_dep = "dpt"
#'
#' mt_split_damir_R(
#'        chemin=chemin_data_init_damir_R,
#'        millesime=millesime_damir_R,
#'        variable=variable_nom_dep,
#'        i=1,
#'        ecriture=FALSE)
#' \dontrun{
#' walk(1:12,~mt_split_damir_R(
#'                  chemin=chemin_data_init_damir_R,
#'                  millesime=millesime_damir_R,
#'                  variable=variable_nom_dep,
#'                  i=.x)
#'     )
#' }
#'
#' @importFrom data.table fread
#' @importFrom dplyr pull filter
#' @importFrom purrr walk
#' @importFrom stringr str_pad
#' @importFrom magrittr %>%
mt_split_damir_R <- function(chemin,
                             millesime,
                             variable,
                             i=1,
                             ecriture=T){
  Fichier<-paste0(chemin, "/R",millesime,stringr::str_pad(i,2,"left",0),".csv")
  RXXXX_temp <- data.table::fread(Fichier)
  liste_dep <- RXXXX_temp %>%
    dplyr::pull(variable) %>%
    unique() %>%
    sort()


  purrr::walk(liste_dep,function(code_dep){

    print(code_dep)
    if(i==1|!ecriture){
      RXXXX_temp_dep_cible_init <- NULL
    }else{
      RXXXX_temp_dep_cible_init <- readRDS(paste0(chemin, "/R",millesime, "_",code_dep,".rds"))
    }

    RXXXX_temp_dep_cible <- RXXXX_temp %>%
      dplyr::filter(!!sym(variable)==code_dep)
    RXXXX_temp_dep_cible_ok <- rbind(RXXXX_temp_dep_cible_init,RXXXX_temp_dep_cible)
    if(ecriture){
      saveRDS(RXXXX_temp_dep_cible_ok,paste0(chemin, "/R",millesime, "_",code_dep,".rds"))
    }
  })
}
arnaudmilet/medtRucks documentation built on March 24, 2022, 9:08 p.m.