data-raw/population_revisee.R

library(data.table)
library(readxl)
library(usethis)
library(inesss)
DT <- read_excel("inst/extdata/EstimRevisAnnuel_2011_2018_20190529.xlsx",  # import
                 sheet = "Âge", skip = 4)
DT <- as.data.table(DT)  # convertir data.table
DT <- melt(  # transformer colonnes en lignes
  DT,
  id.vars = c("Niveau géographique", "Code du territoire", "Territoire", "Année", "Statut", "Sexe"),
  variable.name = "AGE", value.name = "POP"
)
DT <- DT[  # sélection + renommer les colonnes
  , .(GEO = `Niveau géographique`,
      AN = as.integer(`Année`),
      ZONE = as.integer(`Code du territoire`),
      SEXE = Sexe,
      AGE = as_character_factor(AGE),
      POP = as.integer(POP))
]
DT <- DT[SEXE != "Total" & AGE != "Tous les âges"]  # supprimer groupe sexe et groupe age
DT[  # convertir les âges 'texte' en numeric
  AGE == "Moins un an", AGE := "0"
][
  AGE == "90 ans ou plus", AGE := "90"
][  # convertir en integer
  , AGE := as.integer(AGE)
]
DT[  # convertir valeur des sexes
  SEXE == "Féminin", SEXE := "F"
][
  SEXE == "Masculin", SEXE := "M"
]
DT[GEO == "Québec", GEO := "QC"]
setkey(DT)  # tri

for(geo in sunique(DT$GEO)){
  dt <- DT[GEO == geo, .(AN, ZONE, SEXE, AGE, POP)]  # sélection des colonnes
  setnames(dt, "ZONE", geo)  # renommer la colonne par le nom du type de zone
  if(geo == "QC") dt[, QC := NULL]  # supprimer colonne GEO pour le QC entier
  data_name <- paste0("pop_revis_",geo)  # nom du dataset
  assign(data_name, dt)  # enregistrer le dataset dans le global envir
}

use_data(pop_revis_CLSC,
         pop_revis_QC,
         pop_revis_RLS,
         pop_revis_RSS,
         pop_revis_RTS,
         pop_revis_RUIS,
         overwrite = TRUE)
guiboucher/INESSS-inesss.datasets documentation built on July 27, 2020, 11:54 p.m.