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

Nom de variables

Féminin
N = 1,0751

Masculin
N = 6,1011

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%)

1Mean (SD); n (%)

# 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é