Résumé statistique avec summarizor

Les packages à charger

library(flextable)
use_df_printer()

Le dataset CO2

On va utilise dans notre exemple le tableau datasets::CO2.

CO2[-1]

La fonction pour les cellules de comptage

Nous utiliserons cette fonction pour afficher de belles étiquettes lors de l’affichage de comptages et des pourcentages.

count_format <- function(n, percent) {
  z <- character(length = length(n))
  wcts <- !is.na(n)
  z[wcts] <- sprintf(
    "%.0f (%.01f %%)",
    n[wcts], percent[wcts] * 100
  )
  z
}

Le résultat de summarizor

L’objet retourné par summarizor() est un tableau restructuré de manière à pouvoir être utilisé comme entrée par tabulator().

obj <- summarizor(CO2[-1], by = "Treatment", overall_label = "Overall")
obj

Le flextable

Créons maintenant un tableau croisé de ce résumé en appelant tabulator() et as_flextable().

Deux colonnes sont définies ici, une pour les variables numériques et une pour les variables catégorielles qui utilise notre fonction count_format().

ft <- tabulator(obj, 
    rows = c("variable", "stat"),
    columns = "Treatment",
    `Est.` = as_paragraph(value),
    `N` = as_paragraph(count_format(cts, percent))
  ) |>
  as_flextable(separate_with = "variable")
  ft