CHAPITRE I. LES PRINCIPALES FONCTIONS DE GTSUMMARY

Il existe quatre principales maniÚres de personnaliser la sortie du tableau récapitulatif :

  • Utilisation des arguments de la fonction tbl_summary()

  • Ajout d’informations supplĂ©mentaires avec les fonctions add_()

  • Fonctions de personnalisation du tableau

  • Les thĂšmes gtsummary

Et il est possible d’exporter les tableaux vers diffĂ©rents formats.

0. Préambule sur les opérateurs de pipe


Avant d’explorer les fonctionnalitĂ©s de gtsummary, il est utile de comprendre les opĂ©rateurs pipe qui facilitent l’écriture de code dans R :

  • OpĂ©rateur natif |>

Introduit dans R 4.1.0 (2021), l’opĂ©rateur |> permet de simplifier l’écriture des chaĂźnes de traitement. Il envoie la valeur situĂ©e Ă  sa gauche comme premier argument Ă  la fonction Ă  sa droite. Par exemple :

result <- data |> head(10)

équivaut à :

result <- head(data, 10)
  • Pipe du tidyverse %>%

Provenant du package magrittr (et souvent utilisĂ© via dplyr ou tidyverse), %>% permet Ă©galement de chaĂźner des opĂ©rations. Ce pipe est particuliĂšrement flexible et permet d’insĂ©rer des appels de fonctions de maniĂšre plus naturelle. Par exemple :

library(dplyr)
result <- data %>% 
  filter(age > 30) %>% 
  summarise(mean_age = mean(age, na.rm = TRUE))

équivaut à :

filtered_data <- filter(data, age > 30)
result <- summarise(filtered_data, mean_age = mean(age, na.rm = TRUE))

Les deux pipes offrent une syntaxe fluide et lisible. La diffĂ©rence majeure rĂ©side dans la compatibilitĂ© avec d’autres packages et dans certaines subtilitĂ©s syntaxiques, mais dans la pratique, ils remplissent le mĂȘme rĂŽle.

1. Utilisation des arguments de la fonction tbl_summary()

Description :
`Cette fonction peut prendre, au minimum, un data frame comme seul argument d’entrĂ©e et renvoie, dans ce cas, des statistiques descriptives pour chaque colonne du data frame.

## Rows: 7176 Columns: 45
## -- Column specification --------------------------------------------------------------------
## Delimiter: ","
## chr (19): country, zae, region, milieu, hgender, hmstat, hreligion, hnation, hethnie, ha...
## dbl (26): year, hhid, grappe, menage, vague, hhweight, hhsize, eqadu1, eqadu2, hage, dal...
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
library(gtsummary)
dataset |> tbl_summary()

Arguments clés :

La fonction tbl_summary() propose plusieurs options pour modifier l’apparence du tableau rĂ©capitulatif. Voici un aperçu des principaux arguments :

Argument Description
type Définit le type de variable (ex. : continue, catégorielle, etc.)
sort Trie les niveaux d’une variable catĂ©gorielle par frĂ©quence
percent DĂ©finit si les pourcentages doivent ĂȘtre affichĂ©s par colonne, ligne ou cellule
by Permet de stratifier les statistiques selon une variable spécifique (par exemple, pour comparer les groupes)
label Personnalise les étiquettes affichées pour les variables
statistic Définit les statistiques à afficher pour chaque variable, en utilisant souvent la syntaxe {glue} (ex. : "{mean} ({sd})")
digits SpĂ©cifie le nombre de dĂ©cimales Ă  utiliser pour l’affichage des statistique
missing Indique s’il faut afficher une ligne avec le nombre de valeurs manquantes (“ifany” : Affichage explicite des valeurs manquantes si elles existent)
include Liste des variables Ă  inclure dans le tableau

Exemple de script :

library(gtsummary)
tbl_summary_examplesimple <- dataset %>%
  tbl_summary(
    by = hgender,  # Stratification : les statistiques sont calculées séparément pour chaque sexe
    include = hage,  # Seule 'hage' est dans le tableau
    label = hage ~ "Age du chef de ménage",  
    statistic = all_continuous() ~ "{mean} ({sd})",  # Pour les variables continues, afficher la moyenne et l'écart-type
    digits = all_continuous() ~ 2,  # Val num avec 2 décimales
    missing = "ifany"  # Affichage explicite des valeurs manquantes si elles existent
  )
# Affichage du tableau
tbl_summary_examplesimple
Characteristic Féminin
N = 1,075
1
Masculin
N = 6,101
1
Age du chef de ménage 47.97 (15.37) 45.27 (14.50)
1 Mean (SD)

Exemple d’interprĂ©tation :

  • L’échantillon est dominĂ© par des hommes, qui reprĂ©sentent la grande majoritĂ© des chefs de mĂ©nage (6 101 contre 1 075).
  • En moyenne, les chefs de mĂ©nage fĂ©minins sont plus ĂągĂ©s (48 ans) que les chefs de mĂ©nage masculins (45 ans).
  • De plus, la variabilitĂ© de l’ñge des chefs de mĂ©nage est lĂ©gĂšrement plus Ă©levĂ©e chez les femmes (15.37 contre 14.50).

Allons plus loin en incluant plusieurs variables dans notre tableau 


# Création d'un tableau de synthÚse stratifié par la variable 'hage'
tbl_summary_example <- dataset %>%
  tbl_summary(
    by = hgender,  
    include = c(hage, hhsize, hmstat, hreligion, hdiploma, hhandig),  # Toutes ces variables seront incluses dans le tableau
    label = list(
      hage ~ "Âge du chef de mĂ©nage",  
      hhsize ~ "Taille du ménage",  
      hmstat ~ "Statut matrimonial du chef de ménage", 
      hreligion ~ "Religion",  
      hdiploma ~ "Plus haut diplÎme du chef de ménage", 
      hhandig ~ "Des handicapés dans le ménage ?"  
    ),  
    statistic = all_continuous() ~ "{mean} ({sd})",  
    digits = all_continuous() ~ 2,  
    missing = "ifany"  
  )

# Affichage du tableau
tbl_summary_example
Characteristic Féminin
N = 1,075
1
Masculin
N = 6,101
1
Âge du chef de mĂ©nage 47.97 (15.37) 45.27 (14.50)
Taille du ménage 4.53 (2.68) 6.77 (4.09)
Statut matrimonial du chef de ménage

    CĂ©libataire 89 (8.3%) 260 (4.3%)
    DivorcĂ©(e) 23 (2.1%) 27 (0.4%)
    MariĂ©(e) monogame 229 (21.3%) 4,123 (67.6%)
    MariĂ©(e) polygame 171 (15.9%) 1,401 (23.0%)
    SĂ©parĂ©(e) 44 (4.1%) 42 (0.7%)
    Union libre 9 (0.8%) 190 (3.1%)
    Veuf(ve) 510 (47.4%) 58 (1.0%)
Religion

    Animiste 55 (5.1%) 353 (5.8%)
    Autre RĂ©ligion 2 (0.2%) 2 (0.0%)
    ChrĂ©tien 450 (41.9%) 1,762 (28.9%)
    Musulman 563 (52.4%) 3,965 (65.0%)
    Sans RĂ©ligion 5 (0.5%) 19 (0.3%)
Plus haut diplÎme du chef de ménage

    Aucun 862 (80.2%) 4,689 (76.9%)
    BAC 36 (3.3%) 193 (3.2%)
    BEPC 55 (5.1%) 339 (5.6%)
    BT 0 (0.0%) 5 (0.1%)
    CAP 5 (0.5%) 15 (0.2%)
    CEPE 95 (8.8%) 631 (10.3%)
    DEUG, DUT, BTS 5 (0.5%) 53 (0.9%)
    Doctorat/Phd 2 (0.2%) 2 (0.0%)
    Licence 9 (0.8%) 101 (1.7%)
    Maitrise 5 (0.5%) 38 (0.6%)
    Master/DEA/DESS 1 (0.1%) 35 (0.6%)
Des handicapés dans le ménage ?

    Non 977 (90.9%) 5,786 (94.8%)
    Oui 98 (9.1%) 315 (5.2%)
1 Mean (SD); n (%)

2. Ajout d’informations supplĂ©mentaires avec les fonctions add_()

a. add_overall()

Description :
Ajoute une colonne contenant les statistiques globales (non stratifiées), en complément de celles affichées par groupe.

ParamĂštres importants :

  • last : Positionne la colonne globale Ă  la fin du tableau (TRUE/FALSE).
  • col_label : Permet de personnaliser l’intitulĂ© de la colonne globale.

Exemple de script :

tbl_summary_overall <- tbl_summary_example %>%
  add_overall(
    last = TRUE,
    col_label = "**Colonne des totaux ajouté** {N}"
  )

tbl_summary_overall
Characteristic Féminin
N = 1,075
1
Masculin
N = 6,101
1
Colonne des totaux ajouté 71761
Âge du chef de mĂ©nage 47.97 (15.37) 45.27 (14.50) 45.68 (14.67)
Taille du ménage 4.53 (2.68) 6.77 (4.09) 6.44 (3.99)
Statut matrimonial du chef de ménage


    CĂ©libataire 89 (8.3%) 260 (4.3%) 349 (4.9%)
    DivorcĂ©(e) 23 (2.1%) 27 (0.4%) 50 (0.7%)
    MariĂ©(e) monogame 229 (21.3%) 4,123 (67.6%) 4,352 (60.6%)
    MariĂ©(e) polygame 171 (15.9%) 1,401 (23.0%) 1,572 (21.9%)
    SĂ©parĂ©(e) 44 (4.1%) 42 (0.7%) 86 (1.2%)
    Union libre 9 (0.8%) 190 (3.1%) 199 (2.8%)
    Veuf(ve) 510 (47.4%) 58 (1.0%) 568 (7.9%)
Religion


    Animiste 55 (5.1%) 353 (5.8%) 408 (5.7%)
    Autre RĂ©ligion 2 (0.2%) 2 (0.0%) 4 (0.1%)
    ChrĂ©tien 450 (41.9%) 1,762 (28.9%) 2,212 (30.8%)
    Musulman 563 (52.4%) 3,965 (65.0%) 4,528 (63.1%)
    Sans RĂ©ligion 5 (0.5%) 19 (0.3%) 24 (0.3%)
Plus haut diplÎme du chef de ménage


    Aucun 862 (80.2%) 4,689 (76.9%) 5,551 (77.4%)
    BAC 36 (3.3%) 193 (3.2%) 229 (3.2%)
    BEPC 55 (5.1%) 339 (5.6%) 394 (5.5%)
    BT 0 (0.0%) 5 (0.1%) 5 (0.1%)
    CAP 5 (0.5%) 15 (0.2%) 20 (0.3%)
    CEPE 95 (8.8%) 631 (10.3%) 726 (10.1%)
    DEUG, DUT, BTS 5 (0.5%) 53 (0.9%) 58 (0.8%)
    Doctorat/Phd 2 (0.2%) 2 (0.0%) 4 (0.1%)
    Licence 9 (0.8%) 101 (1.7%) 110 (1.5%)
    Maitrise 5 (0.5%) 38 (0.6%) 43 (0.6%)
    Master/DEA/DESS 1 (0.1%) 35 (0.6%) 36 (0.5%)
Des handicapés dans le ménage ?


    Non 977 (90.9%) 5,786 (94.8%) 6,763 (94.2%)
    Oui 98 (9.1%) 315 (5.2%) 413 (5.8%)
1 Mean (SD); n (%)

Exemple d’interprĂ©tation :

  • L’échantillon total comprend 7,176 chefs de mĂ©nage.
  • L’ñge moyen global est 45.68 ans tandis que l’écart-type global est 14.67 ans.

b. add_n()

Description :
Ajoute une colonne indiquant le nombre d’observations (ou le nombre d’observations non manquantes) pour chaque variable.

ParamĂštres importants :

  • col_label : Modifie l’intitulĂ© de la colonne.
  • statistic : Permet de dĂ©finir le format d’affichage des effectifs.
  • footnote : Ajoute une note de bas de tableau explicative.

Exemple de script :

tbl_summary_with_n <- tbl_summary_example %>%
  add_n(
    col_label = "**Effectif**",  # Intitulé de la colonne
    statistic = "{N_nonmiss}",  # {p_miss}ou {N}...
  ) %>%
  modify_table_styling(
    columns = everything(),
    footnote = "Nbre d'observations non manquantes"
  )

# Afficher le tableau final
tbl_summary_with_n
Characteristic1 Effectif1 Féminin
N = 1,075
1
Masculin
N = 6,101
1
Âge du chef de mĂ©nage 7,176 47.97 (15.37) 45.27 (14.50)
Taille du ménage 7,176 4.53 (2.68) 6.77 (4.09)
Statut matrimonial du chef de ménage 7,176

    CĂ©libataire
89 (8.3%) 260 (4.3%)
    DivorcĂ©(e)
23 (2.1%) 27 (0.4%)
    MariĂ©(e) monogame
229 (21.3%) 4,123 (67.6%)
    MariĂ©(e) polygame
171 (15.9%) 1,401 (23.0%)
    SĂ©parĂ©(e)
44 (4.1%) 42 (0.7%)
    Union libre
9 (0.8%) 190 (3.1%)
    Veuf(ve)
510 (47.4%) 58 (1.0%)
Religion 7,176

    Animiste
55 (5.1%) 353 (5.8%)
    Autre RĂ©ligion
2 (0.2%) 2 (0.0%)
    ChrĂ©tien
450 (41.9%) 1,762 (28.9%)
    Musulman
563 (52.4%) 3,965 (65.0%)
    Sans RĂ©ligion
5 (0.5%) 19 (0.3%)
Plus haut diplÎme du chef de ménage 7,176

    Aucun
862 (80.2%) 4,689 (76.9%)
    BAC
36 (3.3%) 193 (3.2%)
    BEPC
55 (5.1%) 339 (5.6%)
    BT
0 (0.0%) 5 (0.1%)
    CAP
5 (0.5%) 15 (0.2%)
    CEPE
95 (8.8%) 631 (10.3%)
    DEUG, DUT, BTS
5 (0.5%) 53 (0.9%)
    Doctorat/Phd
2 (0.2%) 2 (0.0%)
    Licence
9 (0.8%) 101 (1.7%)
    Maitrise
5 (0.5%) 38 (0.6%)
    Master/DEA/DESS
1 (0.1%) 35 (0.6%)
Des handicapés dans le ménage ? 7,176

    Non
977 (90.9%) 5,786 (94.8%)
    Oui
98 (9.1%) 315 (5.2%)
1 Nbre d’observations non manquantes

Dans cet exemple, nous avons utilisé uniquement les fonctions add_n() et add_overall() pour enrichir notre tableau de synthÚse.

Cependant, il existe d’autres fonctions comme add_p() pour ajouter des p-values pour comparer les groupes, add_difference() pour calculer la diffĂ©rence entre deux groupes avec l’intervalle de confiance et la p-value associĂ©e, ou encore add_stat_label() pour ajouter des Ă©tiquettes aux statistiques affichĂ©es. Nous n’avons pas utilisĂ© ces fonctions ici, car elles nĂ©cessitent la mise en Ɠuvre de tests statistiques, ce que nous n’avons pas encore couvert dans le cadre de notre formation.

3. Fonctions de personnalisation du tableau

Ces fonctions de formatage de table proposĂ©es par gtsummary permettent de modifier l’aspect du tableau aprĂšs sa crĂ©ation.

  • modify_header() : Met Ă  jour les en-tĂȘtes de colonnes.
# Modifier les en-tĂȘtes des colonnes
tbl_summary_modified <- tbl_summary_example %>%
  modify_header(label~ "Nom de variables",stat_1 ~ "**Femmes**",  
                # Personnaliser l'en-tĂȘte de la col des var,
                #de la 1ere colonne des statistiques
    stat_2 ~ "**Hommes**"  # pour la 2e
    )

# Afficher le tableau modifié
tbl_summary_modified
Nom de variables Femmes1 Hommes1
Âge du chef de mĂ©nage 47.97 (15.37) 45.27 (14.50)
Taille du ménage 4.53 (2.68) 6.77 (4.09)
Statut matrimonial du chef de ménage

    CĂ©libataire 89 (8.3%) 260 (4.3%)
    DivorcĂ©(e) 23 (2.1%) 27 (0.4%)
    MariĂ©(e) monogame 229 (21.3%) 4,123 (67.6%)
    MariĂ©(e) polygame 171 (15.9%) 1,401 (23.0%)
    SĂ©parĂ©(e) 44 (4.1%) 42 (0.7%)
    Union libre 9 (0.8%) 190 (3.1%)
    Veuf(ve) 510 (47.4%) 58 (1.0%)
Religion

    Animiste 55 (5.1%) 353 (5.8%)
    Autre RĂ©ligion 2 (0.2%) 2 (0.0%)
    ChrĂ©tien 450 (41.9%) 1,762 (28.9%)
    Musulman 563 (52.4%) 3,965 (65.0%)
    Sans RĂ©ligion 5 (0.5%) 19 (0.3%)
Plus haut diplÎme du chef de ménage

    Aucun 862 (80.2%) 4,689 (76.9%)
    BAC 36 (3.3%) 193 (3.2%)
    BEPC 55 (5.1%) 339 (5.6%)
    BT 0 (0.0%) 5 (0.1%)
    CAP 5 (0.5%) 15 (0.2%)
    CEPE 95 (8.8%) 631 (10.3%)
    DEUG, DUT, BTS 5 (0.5%) 53 (0.9%)
    Doctorat/Phd 2 (0.2%) 2 (0.0%)
    Licence 9 (0.8%) 101 (1.7%)
    Maitrise 5 (0.5%) 38 (0.6%)
    Master/DEA/DESS 1 (0.1%) 35 (0.6%)
Des handicapés dans le ménage ?

    Non 977 (90.9%) 5,786 (94.8%)
    Oui 98 (9.1%) 315 (5.2%)
1 Mean (SD); n (%)
Autres paramĂštres Description
modify_footnote_header() Met Ă  jour la note de bas de colonne dans l’en-tĂȘte
modify_footnote_body() Met Ă  jour la note de bas de colonne dans le corps du tableau
modify_spanning_header() Met Ă  jour les en-tĂȘtes englobants (spanning headers)
modify_caption() Met à jour la légende du tableau (titre)
bold_labels() Met en gras les étiquettes des variables
bold_levels() Met en gras les niveaux des variables
italicize_labels() Met en italique les étiquettes des variables
italicize_levels() Met en italique les niveaux des variables
bold_p() Met en gras les p-values significatives
# Créer le tableau de synthÚse personnalisé
tbl_summary_personalized <- dataset %>%
  tbl_summary(
    by = hmstat,
    include = c(hage, hhsize)  # Sélection des variables
  ) %>%
  add_overall() %>%  # Ajouter une colonne avec les statistiques globales
  add_n() %>%  # Ajouter une colonne avec N (ou N manquants)
  modify_header(label ~ "**Variables d'interet**") %>%  # Modifier l'en-tĂȘte des variables
  modify_spanning_header(c("stat_1", "stat_2","stat_3", "stat_4" ,"stat_5", "stat_6", "stat_7") ~ "**Etat matrimonial**") %>%  # En-tĂȘtes englobants
  modify_caption("Tableau modifié. Personnalisation") %>%  # Légende
  bold_labels() %>%  # Mettre en gras les étiquettes des variables
  italicize_labels() 
# Afficher le tableau modifié
tbl_summary_personalized
(\#tab:chap1tabpersoall)Tableau modifié. Personnalisation
Variables d’interet N Overall
N = 7,176
1
Etat matrimonial
Célibataire
N = 349
1
Divorcé(e)
N = 50
1
Marié(e) monogame
N = 4,352
1
Marié(e) polygame
N = 1,572
1
Séparé(e)
N = 86
1
Union libre
N = 199
1
Veuf(ve)
N = 568
1
hage 7,176 43 (34, 56) 28 (24, 34) 46 (35, 55) 41 (33, 52) 50 (41, 61) 46 (36, 52) 36 (29, 44) 58 (48, 67)
hhsize 7,176 6.0 (4.0, 8.0) 2.0 (1.0, 3.0) 3.0 (2.0, 4.0) 5.0 (4.0, 7.0) 9.0 (6.0, 12.0) 3.5 (2.0, 5.0) 5.0 (3.0, 6.0) 4.0 (3.0, 6.0)
1 Median (Q1, Q3)
  • Combinaison des tableaux avec tbl_merge() et tbl_stack()

Combinaison de tableaux avec tbl_merge()

La fonction tbl_merge() permet de fusionner plusieurs tableaux en un seul en ajoutant des colonnes provenant de différents tableaux.

Dans cet exemple, nous allons combiner 2 tableaux en un seul tableau avec tbl_merge().

tbl_1 <- dataset %>%
  tbl_summary(by = milieu, include = c(hage, hhsize))

tbl_2 <- dataset %>%
  tbl_summary(by = hgender, include = c(hage, hhsize))

# Fusionner les deux tableaux dans une liste
tbl_combined <- tbl_merge(
  list(tbl_1, tbl_2), 
  tab_spanner = c("Tableau 1 - Par milieu de résidence", "Tableau 2 - Par sexe")
)%>%
modify_header(label~ "Nom de variables/Modalités")

# Afficher le tableau fusionné
tbl_combined
Nom de variables/Modalités
Tableau 1 - Par milieu de résidence
Tableau 2 - Par sexe
Rural
N = 3,838
1
Urbain
N = 3,338
1
Féminin
N = 1,075
1
Masculin
N = 6,101
1
hage 44 (35, 57) 43 (34, 54) 47 (36, 59) 43 (34, 55)
hhsize 6.0 (4.0, 8.0) 5.0 (4.0, 7.0) 4.0 (3.0, 6.0) 6.0 (4.0, 8.0)
1 Median (Q1, Q3)

Combinaison de tableaux avec tbl_stack()

La fonction tbl_stack() permet d’empiler plusieurs tableaux gtsummary verticalement. Cela signifie que les lignes des diffĂ©rents tableaux sont combinĂ©es en un seul tableau. Attention : les entĂȘtes de colonnes doivent correspondre. Si ce n’est pas le cas, seules les entĂȘtes du premier tableau sont conservĂ©es dans le tableau final

Dans cet exemple, nous allons empiler deux tableaux créés avec tbl_summary().

# Créer deux tableaux de statistiques descriptives
tbl_1 <- dataset %>%
  tbl_summary(by = milieu, include = c(hage, hhsize))
tbl_2 <- dataset %>%
  tbl_summary(by = hgender, include = c(hage, hhsize))

# Empiler les deux tableaux verticalement
tbl_stacked <- tbl_stack(
  tbls = list(tbl_1, tbl_2),  # Passer les tableaux sous forme de liste
  group_header = c("Tableau 1 - Par milieu", "Tableau 2 - Par sexe")
) %>%
  modify_header(label ~ "Nom de variables")  # Appliquer aprĂšs le stacking
## Column headers among stacked tables differ. Headers from the first table are used.
## i Use `quiet = TRUE` to suppress this message.
# Afficher le tableau empilé
tbl_stacked
Nom de variables Rural
N = 3,838
1
Urbain
N = 3,338
1
Tableau 1 - Par milieu
hage 44 (35, 57) 43 (34, 54)
hhsize 6.0 (4.0, 8.0) 5.0 (4.0, 7.0)
Tableau 2 - Par sexe
hage 47 (36, 59) 43 (34, 55)
hhsize 4.0 (3.0, 6.0) 6.0 (4.0, 8.0)
1 Median (Q1, Q3)

4. Personnalisation de l’apparence avec les thùmes gtsummary

Le package gtsummary offre plusieurs thĂšmes intĂ©grĂ©s pour personnaliser l’apparence des tableaux gĂ©nĂ©rĂ©s, permettant ainsi d’adapter l’affichage en fonction du contexte d’utilisation (publication acadĂ©mique, rapport professionnel, etc.). Ces thĂšmes influencent l’aspect gĂ©nĂ©ral du tableau, comme l’espacement, la mise en forme des en-tĂȘtes et des colonnes, ainsi que l’agencement des lignes et des bordures.

a. theme_gtsummary_journal()

Ce thÚme permet de suivre le style de publication de revues académiques, avec des options pour choisir parmi plusieurs journaux :

  • “jama” (Journal of the American Medical Association)

  • “lancet” (The Lancet)

  • “nejm” (The New England Journal of Medicine)

  • “qjecon” (The Quarterly Journal of Economics)

Exemple d’utilisation :

set_gtsummary_theme(theme_gtsummary_journal("qjecon"))  # Appliquer le thĂšme 
## Setting theme "The Quarterly Journal of Economics"
## Setting theme "The Quarterly Journal of Economics"
dataset |> tbl_summary(include = c(hage, hmstat))%>%
  modify_header(label ~ "Nom de variables") 
Nom de variables N = 7,1761
hage 43 (34, 56)
hmstat
    CĂ©libataire 349 (4.9%)
    DivorcĂ©(e) 50 (0.7%)
    MariĂ©(e) monogame 4,352 (60.6%)
    MariĂ©(e) polygame 1,572 (21.9%)
    SĂ©parĂ©(e) 86 (1.2%)
    Union libre 199 (2.8%)
    Veuf(ve) 568 (7.9%)
1 Median (Q1, Q3); n (%)

b. theme_gtsummary_compact()

Ce thĂšme rend les tableaux plus compacts en rĂ©duisant la taille de la police et l’espacement des cellules, idĂ©al pour les rapports plus condensĂ©s.

Exemple d’utilisation :

set_gtsummary_theme(theme_gtsummary_compact())  # Appliquer le thĂšme 'compact'
## Setting theme "Compact"
## Setting theme "Compact"
dataset |> tbl_summary(include = c(hage, hmstat))%>%
  modify_header(label ~ "Nom de variables") 
Nom de variables N = 7,1761
hage 43 (34, 56)
hmstat
    CĂ©libataire 349 (4.9%)
    DivorcĂ©(e) 50 (0.7%)
    MariĂ©(e) monogame 4,352 (60.6%)
    MariĂ©(e) polygame 1,572 (21.9%)
    SĂ©parĂ©(e) 86 (1.2%)
    Union libre 199 (2.8%)
    Veuf(ve) 568 (7.9%)
1 Median (Q1, Q3); n (%)

b. Autres thĂšmes

Thùme Description Script d’exemple
theme_gtsummary_printer() Permet de dĂ©finir le moteur de rendu des tableaux, en choisissant parmi plusieurs options comme gt, kable, flextable, etc. theme_gtsummary_printer(print_engine = ‘flextable’, set_theme = TRUE)
theme_gtsummary_language() Permet de dĂ©finir la langue des tableaux gĂ©nĂ©rĂ©s, avec des traductions disponibles pour plusieurs langues, y compris le français, l’anglais, l’espagnol, etc. theme_gtsummary_language(language = ‘fr’, set_theme = TRUE)
theme_gtsummary_continuous2() Modifie la prĂ©sentation des variables continues dans tbl_summary() pour afficher des statistiques comme la mĂ©diane et l’intervalle interquartile par dĂ©faut. theme_gtsummary_continuous2(set_theme = TRUE)
theme_gtsummary_mean_sd() DĂ©finit les statistiques par dĂ©faut pour les variables continues sur la moyenne et l’écart-type. theme_gtsummary_mean_sd(set_theme = TRUE)
theme_gtsummary_eda() Ce thĂšme est conçu pour l’exploration des donnĂ©es (EDA) et affiche des statistiques supplĂ©mentaires comme la mĂ©diane, l’IQ, la moyenne, l’écart-type et la plage. theme_gtsummary_eda(set_theme = TRUE)

Remarque :

  • set_theme = TRUE : Applique le thĂšme de maniĂšre permanente.

  • set_theme = FALSE : Retourne les Ă©lĂ©ments du thĂšme sans l’appliquer.

5. Exportation des tableaux vers différents formats

a. Exportation au format Word (flextable)

# Exportation en format flextable (pour Word)
library(flextable) 
tbl_summary_flex <- tbl_summary_overall %>%
  modify_header(label ~ "Nom de variables") %>%
  as_flex_table() %>%
  autofit()  # Ajuster automatiquement la largeur des colonnes

# Affichage du tableau flextable
tbl_summary_flex
# Pour sauvegarder en Word (décommenter pour utiliser)
library(officer)
save_as_docx(tbl_summary_flex, path = "./tableaux_exportes/tableau_exporté_chap1.docx")
#flextable::save_as_html(resultats_flex, path = "./tableaux_exportes/tableau_exporté_chap1.html") # HTML
message("Le fichier 'tableau_exporté_chap1.docx' a été sauvegardé avec succÚs !")
## Le fichier 'tableau_exporté_chap1.docx' a été sauvegardé avec succÚs !

b. Exportation au format HTML (gt)

# Exportation en format gt (pour HTML)
library(gt)
tbl_summary_gt <- tbl_summary_overall %>%
  modify_header(label ~ "Nom de variables") %>%
  as_gt() %>%
  tab_header(
    title = "Statistiques descriptives de l'EHCVM 2021",
    subtitle = "Avec nos variables d'intéret"
  ) %>%
  tab_options(
    heading.background.color = "#4E79A7",
    heading.title.font.size = 18,
    heading.subtitle.font.size = 14,
    column_labels.background.color = "#A0CBE8"
  )

# Affichage du tableau gt
tbl_summary_gt
Statistiques descriptives de l'EHCVM 2021
Avec nos variables d'intéret
Nom de variables Féminin
N = 1,075
1
Masculin
N = 6,101
1
Colonne des totaux ajouté 71761
Âge du chef de mĂ©nage 47.97 (15.37) 45.27 (14.50) 45.68 (14.67)
Taille du ménage 4.53 (2.68) 6.77 (4.09) 6.44 (3.99)
Statut matrimonial du chef de ménage


    CĂ©libataire 89 (8.3%) 260 (4.3%) 349 (4.9%)
    DivorcĂ©(e) 23 (2.1%) 27 (0.4%) 50 (0.7%)
    MariĂ©(e) monogame 229 (21.3%) 4,123 (67.6%) 4,352 (60.6%)
    MariĂ©(e) polygame 171 (15.9%) 1,401 (23.0%) 1,572 (21.9%)
    SĂ©parĂ©(e) 44 (4.1%) 42 (0.7%) 86 (1.2%)
    Union libre 9 (0.8%) 190 (3.1%) 199 (2.8%)
    Veuf(ve) 510 (47.4%) 58 (1.0%) 568 (7.9%)
Religion


    Animiste 55 (5.1%) 353 (5.8%) 408 (5.7%)
    Autre RĂ©ligion 2 (0.2%) 2 (0.0%) 4 (0.1%)
    ChrĂ©tien 450 (41.9%) 1,762 (28.9%) 2,212 (30.8%)
    Musulman 563 (52.4%) 3,965 (65.0%) 4,528 (63.1%)
    Sans RĂ©ligion 5 (0.5%) 19 (0.3%) 24 (0.3%)
Plus haut diplÎme du chef de ménage


    Aucun 862 (80.2%) 4,689 (76.9%) 5,551 (77.4%)
    BAC 36 (3.3%) 193 (3.2%) 229 (3.2%)
    BEPC 55 (5.1%) 339 (5.6%) 394 (5.5%)
    BT 0 (0.0%) 5 (0.1%) 5 (0.1%)
    CAP 5 (0.5%) 15 (0.2%) 20 (0.3%)
    CEPE 95 (8.8%) 631 (10.3%) 726 (10.1%)
    DEUG, DUT, BTS 5 (0.5%) 53 (0.9%) 58 (0.8%)
    Doctorat/Phd 2 (0.2%) 2 (0.0%) 4 (0.1%)
    Licence 9 (0.8%) 101 (1.7%) 110 (1.5%)
    Maitrise 5 (0.5%) 38 (0.6%) 43 (0.6%)
    Master/DEA/DESS 1 (0.1%) 35 (0.6%) 36 (0.5%)
Des handicapés dans le ménage ?


    Non 977 (90.9%) 5,786 (94.8%) 6,763 (94.2%)
    Oui 98 (9.1%) 315 (5.2%) 413 (5.8%)
1 Mean (SD); n (%)
# Pour sauvegarder en HTML (décommenter pour utiliser)
gt::gtsave(tbl_summary_gt, filename = "./tableaux_exportes/tableau_exporté_chap1.html")
message("Le fichier 'tableau_exporté_chap1.html' a été sauvegardé avec succÚs !")
## Le fichier 'tableau_exporté_chap1.html' a été sauvegardé avec succÚs !
Pied de page personnalisé