data-raw/population_Canada.R

### Site : https://www150.statcan.gc.ca/t1/tbl1/fr/tv.action?pid=1710000501
### Cliquer sur Ajouter ou enlever des données;
### Personnalisation du tableau :
###   Sexe : Décocher 'Les deux sexes' et cocher la case de droite dessous de 'Sélectionner des niveaux spécifiques uniquement'). Cela sélectionnera Homme et Femme séparément.
###   Groupe d'âge : Cliquer sur la liste déroulante de 'Tous âge', Décocher 'Tous âges', décocher 'Tout sélectionner' (qui vient d'apparaître) et 'Âge médian', puis cocher la troisième case en dessous de 'Sélectionner des niveaux spécifiques uniquement' et '100 ans et plus'. Cela sélectionnera tous les âges sans créer de groupe.
###   Période de référence : De -> + petit, à -> plus élevé
### Cliquer sur Appliquer
### Cliquer sur Options de téléchargement
### Sélectionner 'CSV Télécharger les données sélectionnées (pour le chargement de la base de données)
### Inscrire la date à la fin du nom proposé

library(data.table)
library(readxl)
library(stringr)
library(usethis)
dt <- fread("inst/extdata/1710000501_donneesselectionnees_2019-11-20.csv")
cols <- names(dt)[c(1, 4, 5, 12)]  # colonnes à sélectionner
dt <- dt[, ..cols]
# ATTENTION : Vérifier que les colonnes sont dans l'ordre : PÉRIODE DE RÉFÉRENCE, Sexe, Groupe d'Âge et VALEUR.
setnames(dt, names(dt), c("ANNEE", "SEXE", "AGE", "POP"))  # renommer les colonnes
str(dt)
dt <- dt[
  SEXE == "Femmes", SEXE := "F"  # Modifier les valeurs du sexe par H pour hommes et F pour femme
][
  SEXE == "Hommes", SEXE := "H"
][
  AGE == "100 ans et plus", AGE := "100"  # spécifier les 100 ans et plus
][
  , AGE := str_replace_all(AGE, "ans", "")  # supprimer l'unité : an et ans
][
  , AGE := str_replace_all(AGE, "an", "")
][
  , AGE := as.integer(AGE)  # convertir en entier, les groupes d'âge seront converti en NA pcq contient des caractères spéciaux
][
  !is.na(AGE)  # conserver les âges qui ont des valeurs (supprimer anciennement les groupes d'âge)
]
if(!is.integer(dt$ANNEE)) dt[, ANNEE := as.integer(ANNEE)]  # convertir les colonnes au besoin
if(!is.character(dt$SEXE)) dt[, SEXE := as.character(SEXE)]
if(!is.integer(dt$AGE)) dt[, AGE := as.integer(AGE)]
if(!is.integer(dt$POP)) dt[, POP := as.integer(POP)]
setkey(dt)  # tri croissant
population_Canada <- copy(dt); rm(dt)
use_data(population_Canada, overwrite = TRUE)
INESSS-QC/inesss.datasets documentation built on July 24, 2020, 12:22 a.m.