R/polysimul_consoMinimale.R

Defines functions polysimul_consoMinimale

Documented in polysimul_consoMinimale

#' Consommation
#'
#' Statistiques descriptives du nombre de jours qu'un individu consomme au moins *X* médicaments.
#'
#' @param data_polysimul1_data Dataset créé par la fonction `polysimul1_data()`.
#'
#' @return data.table à 13 variables :
#' * nRx : Nombre minimal de médicament(s) consommé(s) en une journée.
#' * Statistiques descriptives : Moyenne, Écart-type, Min, P5, P10, Q1, Médiane, Q3, P90, P95, Max.
#' * n : nombre d'individus.
#' @import data.table
#' @export
polysimul_consoMinimale <- function(data_polysimul1_data){
  x <- copy(data_polysimul1_data); rm(data_polysimul1_data)
  listID <- sunique(x$ID)  # list des ID unique
  maxRx <- max(x$nRx)  # maximum de médicaments consommé en une journée
  consoMinimale <- rbindlist(
    lapply(seq(maxRx), function(nMedicament){
      SD <- x[nRx >= nMedicament, .(nJours = .N), .(ID)]  # nombre de jours avec au moins nRx médicaments
      # Ajouter les ID sans conso : nJours = 0
      IDsansConso <- listID[!listID %in% SD$ID]  # list des ID sans conso
      if(length(IDsansConso)){  # s'il y a des ID sans conso
        SD <- rbind(SD, data.table(ID = listID[!listID %in% SD$ID],  # ajouté ceux sans consommation
                                   nJours = 0))
      }
      SD <- SD[, .(nRx = nMedicament,  # nombre minimum de médicament consommé en une journée
                   Moyenne = mean(nJours),  # stats descriptives
                   `Écart-type` = sd(nJours),
                   Min = min(nJours),
                   P5 = quantile(nJours, 0.05),
                   P10 = quantile(nJours, 0.10),
                   Q1 = quantile(nJours, 0.25),
                   `Médiane` = median(nJours),
                   Q3 = quantile(nJours, 0.75),
                   P90 = quantile(nJours, 0.90),
                   P95 = quantile(nJours, 0.95),
                   Max = max(nJours),
                   n = uniqueN(ID)),]  # nombre de ID analysé
      return(SD)
    })
  )
  return(consoMinimale)
}
INESSS-QC/polymed1 documentation built on Aug. 4, 2020, 12:02 a.m.