#' Distribution de l'indicateur
#'
#' Tableau de fréquence
#'
#' @param data_polysimul1_stats Dataset créé par la fonction `polysimul1_stats()`.
#'
#' @return `list` contenant des `data.table` de chaque statistique descriptive.
#' * Valeur : Nombre de médicament(s) consommé(s).
#' * Freq : Fréquence de la valeur.
#' * Pourcentage
#' * Cumul : Pourcentage cumulatif.
#' @import data.table
#' @importFrom stringr str_detect str_replace
#' @export
polysimul_tabFreq <- function(data_polysimul1_stats,
cols = c("Moyenne", "Min", "Médiane", "Max")){
# Fonctions --------------------------------------------------------------------------------------
### Tableau de fréquence
### x : dataset créé
### col : Nom de la colonne à sélectionner
.tabFreq <- function(x, col){
dt <- x[, ..col] # sélection de la colonne
setnames(dt, col, "Valeur") # renommmer la colonne de la statistique descriptive
nZero <- dt[Valeur==0, .N] # nombre de ID sans consommation
dt[, Valeur := floor(Valeur)] # entier inférieur de la valeur (début de la classe)
dt <- dt[, .(Freq = .N), keyby = Valeur] # fréquence
Val2add <- seq(0, max(dt$Valeur))[!seq(0, max(dt$Valeur)) %in% dt$Valeur] # s'il y a des valeurs possibles absentes
if(length(Val2add)){ # ajouter les valeurs absente
dt <- rbind(dt, data.table(Valeur = Val2add, Freq = 0))
setkey(dt, Valeur) # tri
}
dt[, Pourcentage := Freq / sum(Freq) * 100] # pourcentage
dt[, Cumul := cumsum(Pourcentage)] # pourcentage cumulé
dt[, Valeur := paste0("[",Valeur,",",Valeur+1,"[")] # indiquer que c'est une classe
dt[, Valeur := factor(Valeur, levels = Valeur)] # transformer en facteur pour future utilisation numérique
attr(dt, "nZero") <- list(n = nZero, ratio = nZero/sum(dt$Freq)) # ajouter en attribut le nombre de sans consommation.
return(dt)
}
# Code -------------------------------------------------------------------------------------------
x <- copy(data_polysimul1_stats[, ..cols]) # sélection des colonnes
dist_indic <- lapply(names(x), function(col) return(.tabFreq(x, col)))
names(dist_indic) <- names(x) # nom des éléments de la liste
return(dist_indic)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.