Chapitre 16 Créer des tableaux avec kable et kable extra
Kable permet de créer des tableaux de diffusion très simplement. Une très bonne documentation en anglais peut se trouver ici
Ci-dessous un exemple. On reprend les données utilisées pour le diagramme barre.
%>%
ODD_indicateur311 filter(Type_Zone != "Pays",
== "All age ranges or no breakdown by age",
Age_group == "Both sexes or no breakdown by sex",
Sex == "Total (national level)",
Location is.na(Value_type)
%>%
) group_by(Country_or_Area_Code) %>%
filter(Year == max(Year)) %>%
%>%
ungroup select(Country_or_Area_Name, Year, Value) %>%
setNames(c("Zone", "Année", "Nombre de décès pour 100 000 Naissance")) %>%
kable("html", caption = "Mortalité de la mère à la naissance pour quelques grandes zones du globe") %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
row_spec(1, bold = T, color = "white", background = "grey") %>%
add_indent(c(2:5))
Zone | Année | Nombre de décès pour 100 000 Naissance |
---|---|---|
World | 2015 | 216 |
Latin America and the Caribbean | 2015 | 67 |
Southern Asia | 2015 | 176 |
South-Eastern Asia | 2015 | 110 |
Oceania (excluding Australia and New Zealand) | 2015 | 187 |
Description des fonctions utilisées :
setNames() permet de définir les libellés de colonnes ;
kable(“html”) permet de produire une sortie html du tableau, l’option caption définit le titre ;
kable_styling() permet de mettre un thème à notre tableau, ici on lui dit qu’on veut un tableau avec des lignes dont les couleurs alternent entre blanc et gris et un effet de surbrillance au passage de la souris ;
row_spec() permet de définir des attributs particuliers pour des lignes. Ici, on lui dit qu’on veut une ligne 1 avec du gras, un fond gris et une police de couleur blanche. L’équivalent pour les colonnes est column_spec();
add_indent() permet de définir sur un vecteur de lignes (ici les lignes 2 à 5) une indentation.
16.1 Sauvegarde
Le tableau ainsi produit peut être sauvegardé sous plusieurs formats (html, png, pdf, etc..) grâce à la fonction save_kable. Cette fonction nécessite le chargement du package kableExtra.
%>%
ODD_indicateur311 filter(Type_Zone != "Pays",
== "All age ranges or no breakdown by age",
Age_group == "Both sexes or no breakdown by sex",
Sex == "Total (national level)",
Location is.na(Value_type)
%>%
) group_by(Country_or_Area_Code) %>%
filter(Year == max(Year)) %>%
%>%
ungroup select(Country_or_Area_Name, Year, Value) %>%
setNames(c("Zone", "Année", "Nombre de décès pour 100 000 Naissance")) %>%
kable("html", caption = "Mortalité de la mère à la naissance pour quelques grandes zones du globe") %>%
kable_styling(bootstrap_options = c("striped", "hover")) %>%
row_spec(1, bold = T, color = "white", background = "grey") %>%
add_indent(c(2:5)) %>%
save_kable("montableau.png")
16.2 Exercice 8
A partir de la table rpls_aggrege_large
, produire un tableau du nombre de logements collectifs et individuels (RPLS) par départements en région Centre-Val de Loire : 1 ligne par département + 1 ligne avec le total de la région.
Résultat attendu :
Zone | Nombre de logements collectifs | Nombre de logements individuels |
---|---|---|
Cher | 14434 | 7054 |
Eure-et-Loir | 24462 | 7024 |
Indre | 11533 | 6419 |
Indre-et-Loire | 39030 | 9779 |
Loir-et-Cher | 14632 | 6436 |
Loiret | 37442 | 12671 |
Centre-Val de Loire | 141533 | 49383 |