R/polysimul_distFreq.R

Defines functions polysimul_distFreq

Documented in polysimul_distFreq

#' Distribution de fréquence
#'
#' Distribution de fréquence de la statistique descriptive.
#'
#' @param polysimul1_stats Dataset créé par la fonction `polysimul1_stats()`.
#' @param stats Statistiques descriptives à analyser Sous la forme d'une liste, écrire sous la forme suivante : `list(titre_graphique = "nomColonne")`.
#'
#' @return `list` contenant un `geom_bar` de chaque statistique descriptive.
#' @import data.table
#' @import ggplot2
#' @export
polysimul_distFreq <- function(polysimul1_stats,
                               stats = list(Moyennes = "Moyenne",
                                            Minimums = "Min",
                                            Médianes = "Médiane",
                                            Maximums = "Max")){

# Fonctions --------------------------------------------------------------------------------------
  ### Barplot distribution des valeurs
  ### x : dataset
  ### col : Colonne
  .distFreq <- function(x, col){
    dt <- copy(x[[col]])
    dt[, Valeur := as.numeric(Valeur) - 1]
    xmax <- max(dt$Valeur)
    p <- ggplot(dt, aes(Valeur, Freq)) +
      geom_bar(
        stat = "identity",
        col = "#5792CC", fill = "#5792CC"  # couleur de l'inesss
      ) +
      labs(
        title = paste0("Distribution de fréquence des ",names(stats)[match(col, stats)]),  # titre du barplot
        x = "Valeur de l'indicateur",  # titre axe x
        y = "Freq (n)"  # titre axe y
      ) +
      scale_y_continuous(expand = c(0, 0)) +
      scale_x_continuous(
        expand = c(0, 0),
        limits = c(-1, xmax+1),
        breaks = seq(0, xmax + 1, 2),
        labels = sapply(seq(0, xmax + 1, 2), function(x) paste0("[",x,",",x+1,"["))
      ) +
      theme_classic() +
      theme(
        plot.title = element_text(hjust = 0.5)  # centré le titre
      )
    return(p)

  }

# Code -------------------------------------------------------------------------------------------

  cols <- unlist(stats)  # sélectionner les statistiques désirées
  x <- polysimul_tabFreq(polysimul1_stats)[cols]  # sélection data
  dist_indic <- lapply(names(x), function(col) return(.distFreq(x, col)))  # graphique pour chaque stat descriptive
  names(dist_indic) <- names(x)  # indiquer nom des élément de la liste
  return(dist_indic)
}
INESSS-QC/polymed1 documentation built on Aug. 4, 2020, 12:02 a.m.