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",
    Age_group == "All age ranges or no breakdown by age",
    Sex == "Both sexes or no breakdown by sex",
    Location == "Total (national level)",
    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))
(#tab:kabble_1)Mortalité de la mère à la naissance pour quelques grandes zones du globe
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",
    Age_group == "All age ranges or no breakdown by age",
    Sex == "Both sexes or no breakdown by sex",
    Location == "Total (national level)",
    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 :

(#tab:mod5_exo8_solution)Chiffres clés RPLS
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