R/polysimul_distCumul.R

Defines functions polysimul_distCumul

Documented in polysimul_distCumul

#' Distribution
#'
#' Distribution cumulée des statistiques descriptives
#'
#' @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_point` de chaque statistique descriptive.
#' @import data.table
#' @import ggplot2
#' @export
polysimul_distCumul <- function(polysimul1_stats,
                                stats = list(Moyennes = "Moyenne",
                                             Minimums = "Min",
                                             Médianes = "Médiane",
                                             Maximums = "Max")){

# Fonctions --------------------------------------------------------------------------------------
  ### Distribution des pourcentages cumulées pour des valeurs de type INT
  ### x : list
  ### col : nom de la statistique descriptive
  .distCumul <- function(x, col){
    dt <- copy(x[[col]])
    dt[, Valeur := as.numeric(Valeur) - 1]
    xmax <- max(dt$Valeur)
    p <- ggplot(dt, aes(Valeur, Cumul)) +
      geom_line(col = "#5792CC") +
      geom_point(col = "#5792CC") +
      labs(
        title = paste("Distribution cumulée des",names(stats)[match(col, stats)]),
        x = "Valeur de l'indicateur",
        y = "Pourcentage cumulé (%)"
      ) +
      scale_y_continuous(
        expand = c(0, 0),
        limits = c(0, 105),
        breaks = seq(0, 105, 10),
        labels = seq(0, 105, 10)
      ) +
      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)
      )
    return(p)
  }

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

  cols <- unlist(stats)
  x <- polysimul_tabFreq(polysimul1_stats)[cols]
  dist_indic <- lapply(names(x), function(col) return(.distCumul(x, col)))
  names(dist_indic) <- names(x)  # nom des éléments de la liste
  return(dist_indic)
}
INESSS-QC/polymed1 documentation built on Aug. 4, 2020, 12:02 a.m.