Les résultats des exercices sont à consulter sur https://mtes-mct.github.io/savoirfR/cheesedown/.
Exercice 1 : prise en main (chap 3.2)
- Ouvrir Rstudio
- Créer un fichier Rmarkdown, format html
- prévisualiser le document avant toutes modifications
- Se mettre en auteur du document
- Rajouter un theme spécifique
- Cliquer sur knit pour compiler le document et identifier
les correspondances entre fichier .Rmd et fichier html
Résultat attendu :
Exercice 2 (chap 3.5)
Nous allons travailler sur les informations du site www.cheese.com. Nous nous appuyons
pour cela sur l’exemple proposé pour l’évènement tidytuesday
du 4 juin 2024.
Le fichier markdown qui sera créé pendant toute cette formation
parlera donc de fromage !
- Partir du fichier .Rmd de l’exercice précédent
- Saisir un titre, un paragraphe, une liste d’item, un encart et un
lien. N’hésitez pas à jouer avec la mise en forme du texte en syntaxe
markdown.
- Appuyer sur
visual pour avoir un aperçu du rendu
final
Résultat attendu :
Exercice 3 (chap 4.4)
- Poursuivre le fichier .Rmd de l’exercice précédent
- Créer un chunk pour définir des options générales, il ne doit pas
être visible dans le document final
- Créer un chunk pour charger les packages nécessaires, il ne doit pas
être visible dans le document final
- Créer un nouveau chapitre qui aura pour objet la présentation de
quelques observations du jeu de données
- Ajouter un chunk pour stocker les données utilisées dans une
dataframe. Ni la dataframe, ni le code ne doivent s’afficher dans le
document final. Pour récupérer les données tidytuesday :
tuesdata <- tidytuesdayR::tt_load('2024-06-04')
data_fromage <- tuesdata$cheeses
Ajouter une ligne de texte qui indique le nombre de fromages
disponibles dans la dataframe (cette valeur doit être calculée
automatiquement)
Créer une variable dans cette dataframe pour indiquer si
l’origine des fromages (colonne country) est française ou
non
Ajouter un chunk créant un graphique en barres qui indique le
nombre de fromage par origine (FR ou non-FR). Le graphique devra
apparaître dans le document final, pas le code pour le créer.
Ajouter une image d’illustration en tête d’article
Générer le document
Résultat attendu :
En repartant du fichier .Rmd de l’exercice précédent :
- Modifier les options pour avoir un sommaire flottant affichant un
seul niveau de titre
- Changer le thème utilisé pour la sortie HTML
- Générer le document
- Ajouter un format de sortie à l’entête pour qu’il génère un document
PDF et un document odt en plus du HTML. Rappel : il est important de
vérifier la compatibilité des éléments produits par le code avec ce
nouveau format.
Résultat attendu :
Exercice 5 : paramétrer un rapport (chap 6.5)
- Créer un nouveau .Rmd
- Ajouter comme paramètre dans le YAML le pays (country) en
choisissant “France” comme valeur par défaut
- Ajouter un titre pour qu’il dépende de ce paramètre
- Filtrer la dataframe en fonction de ce paramètre
- Ajouter un graphique construit à partir de cette dataframe filtrée.
Son titre peut également dépendre du paramètre country. (voir la page
dédiée à la réalisation de graphique avec ggplot dans le module 5 du
parcours R, ou réutiliser le code ci-dessous)
Par exemple, on peut regrouper les fromages par type simplifié et
représenter le pourcentage de matières grasses par type. C’est
l’occasion de découvrir ou re-découvrir certaines nouvelles fonctions de
dplyr apparues en 2026 :
data_fromage <- tuesdata$cheeses %>%
filter_out(when_any(is.na(fat_content),
is.na(type))) %>%
mutate(type = replace_when(type,
str_detect(type, 'soft') ~ 'molle',
str_detect(type, 'firm') ~ 'ferme',
str_detect(type, 'hard') ~ 'dure')) %>%
mutate(fat_content = as.numeric(str_extract(fat_content, "^\\d+(\\.\\d+)?"))) %>%
filter(country==params$country)
ggplot(data_fromage) +
geom_violin(aes(x = type, y = fat_content, fill = type)) +
scale_fill_manual(values = c("dure" = "#EEDC82", "ferme" = "#FFFACD", "molle" = "#FFFAF0")) +
theme_gouv(plot_title_size = 12,
subtitle_size = 12) +
labs(title = "% de matière grasse par type de pâte de fromage",
subtitle = params$country,
x = "Type de pâte",
y = "% de matière grasse") +
theme(legend.position = 'none')
- Générer ce HTML à l’aide du bouton knit
- Créer dans un nouveau script une fonction qui génère le HTML à
partir d’une liste de pays
- Appliquer cette fonction à une liste restreinte de pays (par exemple
France, Italy, United States)
Résultat attendu :
Exercice 6 facultatif : tester bookdown (chap 7.7)
Expérimenter bookdown
Exercice 7 facultatif : tester l’interactivité (chap 8.5)
- Repartir du .Rmd de l’exercice 4 au format HTML
- Ajouter un nouveau chapitre relatif à des visualisations
interactives (si besoin : voir la partie
interactivité des visualisations du module 5 du parcours)
- Créer un widget HTML interactif : un graphique ggiraph, un tableau
datatable, une carte leaflet…
- Créer une dataframe partagée à l’aide du package crosstalk
- Utiliser cette dataframe partagée pour créer un filtre crosstalk sur
la colonne country
- Créer un widget interactif à partir de cette dataframe partagée
Résultat attendu :
Exercice 8 facultatif : gitlab (chap 9.3)
Expérimenter gitlab pages