data-raw/AS471.R

##### Regrouper toutes les années disponibles des fichiers AS471.
##### Les fichiers à importer doivent se nommer "AS471_BD_xxxx_yyyy.zip"
#####   où xxxx_yyyy représente l'année financière allant du
#####   1er avril xxxx au 31 mars yyyy(=xxxx+1)
#####
##### N.B.
##### 1) À partir de AF2017, la variable PeriodeFinanciere est remplacée par deux autres variables
##### qui n'ont pas toujours le même nom d'une année à l'autre.
library(data.table)
library(stringr)
library(usethis)

fromAF <- 2013
toAF <- 2018

AS471 <- data.table()  # tableau résultat final
for(AF in fromAF:toAF){
  file <- paste0("AS471_BD_",AF,"_",AF+1,".zip")
  info <- unzip(  # sauvegarder info dans variable 'info' -> list = TRUE
    zipfile = paste0("inst/extdata/AS471/",file),  # nom du fichier ZIP à extraire
    list = TRUE  # créer un tableau contenant le nom du fichier extrait
  )
  unzip(  # unzip
    zipfile = paste0("inst/extdata/AS471/",file),  # nom du fichier ZIP à extraire
    exdir = "inst/extdata/AS471",  # répertoire où extraire le contenu du fichier ZIP
  )
  dt <- fread(paste0("inst/extdata/AS471/", info$Name))  # importer le dsataset
  unlink(paste0("inst/extdata/AS471/", info$Name), TRUE)  # supprimer fichier importé

  # Modification des colonnes
  if(AF == 2017){  # Indiquer AFxxxx à partir de nouvelles variables
    dt[, `:=` (PeriodeFinanciere = as.integer(str_sub(DateDebutPeriodeFinanciere, 1, 4)),
               DateDebutPeriodeFinanciere = NULL,  # supprimer colonnes inutiles
               DateFinPeriodeFinanciere = NULL)]
  } else if(AF == 2018){
    dt[, `:=` (PeriodeFinanciere = as.integer(str_sub(DateDebutAnneeFinanciere, 1, 4)),
               DateDebutAnneeFinanciere = NULL,  # supprimer colonnes inutiles
               DateFinAnneeFinanciere = NULL)]
  } else {  # Indiquer AFxxxx
    dt[, PeriodeFinanciere := as.integer(str_sub(PeriodeFinanciere, 1, 4))]
  }
  dt[EstUnCSSS == "non", EstUnCSSS := "FALSE"][EstUnCSSS == "OUI", EstUnCSSS := "TRUE"][, EstUnCSSS := as.logical(EstUnCSSS)]  # modifier non/OUI par FALSE/TRUE
  dt[Description == "", Description := NA]  # "" = NA
  dt[, Chiffre := as.numeric(str_replace(Chiffre, ",", "."))]  # convertir en numeric
  AS471 <- rbind(AS471, dt, fill = TRUE)  # ajouter l'année financière au tableau total
}
setkey(AS471, PeriodeFinanciere, EtabInstal, Page, SousPage, Ligne, Colonne, CAsousCA)  # tri

use_data(AS471, overwrite = TRUE)


# Test --------------------------------------------------------------------------------------------

# file = zipfiles[1]
guiboucher/INESSS-inesss.datasets documentation built on July 27, 2020, 11:54 p.m.