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 :
<- data |> head(10) result
équivaut à :
<- head(data, 10) result
- 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)
<- data %>%
result filter(age > 30) %>%
summarise(mean_age = mean(age, na.rm = TRUE))
équivaut à :
<- filter(data, age > 30)
filtered_data <- summarise(filtered_data, mean_age = mean(age, na.rm = TRUE)) result
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)
|> tbl_summary() dataset
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)
<- dataset %>%
tbl_summary_examplesimple 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,0751 |
Masculin N = 6,1011 |
---|---|---|
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'
<- dataset %>%
tbl_summary_example tbl_summary(
by = hgender,
include = c(hage, hhsize, hmstat, hreligion, hdiploma, hhandig), # Toutes ces variables seront incluses dans le tableau
label = list(
~ "Âge du chef de ménage",
hage ~ "Taille du ménage",
hhsize ~ "Statut matrimonial du chef de ménage",
hmstat ~ "Religion",
hreligion ~ "Plus haut diplôme du chef de ménage",
hdiploma ~ "Des handicapés dans le ménage ?"
hhandig
), statistic = all_continuous() ~ "{mean} ({sd})",
digits = all_continuous() ~ 2,
missing = "ifany"
)
# Affichage du tableau
tbl_summary_example
Characteristic | Féminin N = 1,0751 |
Masculin N = 6,1011 |
---|---|---|
Â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_example %>%
tbl_summary_overall add_overall(
last = TRUE,
col_label = "**Colonne des totaux ajouté** {N}"
)
tbl_summary_overall
Characteristic | 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%) |
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_example %>%
tbl_summary_with_n 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,0751 |
Masculin N = 6,1011 |
---|---|---|---|
Â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_example %>%
tbl_summary_modified 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
~ "**Hommes**" # pour la 2e
stat_2
)
# 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é
<- dataset %>%
tbl_summary_personalized 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
Variables d’interet | N | Overall N = 7,1761 |
Etat matrimonial
|
||||||
---|---|---|---|---|---|---|---|---|---|
Célibataire N = 3491 |
Divorcé(e) N = 501 |
Marié(e) monogame N = 4,3521 |
Marié(e) polygame N = 1,5721 |
Séparé(e) N = 861 |
Union libre N = 1991 |
Veuf(ve) N = 5681 |
|||
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().
<- dataset %>%
tbl_1 tbl_summary(by = milieu, include = c(hage, hhsize))
<- dataset %>%
tbl_2 tbl_summary(by = hgender, include = c(hage, hhsize))
# Fusionner les deux tableaux dans une liste
<- tbl_merge(
tbl_combined 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,8381 |
Urbain N = 3,3381 |
Féminin N = 1,0751 |
Masculin N = 6,1011 |
|
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
<- dataset %>%
tbl_1 tbl_summary(by = milieu, include = c(hage, hhsize))
<- dataset %>%
tbl_2 tbl_summary(by = hgender, include = c(hage, hhsize))
# Empiler les deux tableaux verticalement
<- tbl_stack(
tbl_stacked 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,8381 |
Urbain N = 3,3381 |
---|---|---|
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"
|> tbl_summary(include = c(hage, hmstat))%>%
dataset 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"
|> tbl_summary(include = c(hage, hmstat))%>%
dataset 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) |
5. Exportation des tableaux vers différents formats
a. Exportation au format Word (flextable)
# Exportation en format flextable (pour Word)
library(flextable)
<- tbl_summary_overall %>%
tbl_summary_flex 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 | Masculin | 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_overall %>%
tbl_summary_gt 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,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%) |
1 Mean (SD); n (%) |
# Pour sauvegarder en HTML (décommenter pour utiliser)
::gtsave(tbl_summary_gt, filename = "./tableaux_exportes/tableau_exporté_chap1.html")
gtmessage("Le fichier 'tableau_exporté_chap1.html' a été sauvegardé avec succès !")
## Le fichier 'tableau_exporté_chap1.html' a été sauvegardé avec succès !