Premiers pas avec Quarto

Auteur·rice

E. Morand & B. Garnier (Ined)

Date de publication

15 octobre 2024

Quarto

Ce support est un document fait avec Quarto dans RStudio. Il contient à la fois du texte (mis en forme), des images, du code R et des résultats. Il permet à la fois d’analyser ses données (avec R), partager son code et présenter ses traitements. Il fait parti des outils courants de la recherche reproductible.

Slide

Extrait de la présentation de C. Dervieux aux Journées R 2023 C quoi Quarto

Un document quarto est un fichier enregistré avec l’extension .qmd.

Créer un document Quarto

Il est préférable avant tout de créer un projet R avec New Project dans R Studio où vous placerez tous les éléments utiles pour ce document : données, images, base bibliographique …

Puis créer un nouveau fichier New File et de sélectionner Quarto Document.

Une fenêtre permet de paramétrer le document généré : titre, auteur(s), format.

Premiers éléments d’un document Quarto

R Studio génère un document modèle à adapter en ajoutant du texte, des images, des liens hypertexte, des tableaux, de références bibliogrpahiques, des chunks….

On compile le document Quarto avec le bouton Render.

Le fichier HTML est sauvegardé dans le répertoire de travail du projet et peut être affiché dans un navigateur web (sans connexion internet).

Le YAML

C’est l’en-tête du fichier Quarto ; celle-ci est encadrée par 2 séries de pointillés ---. Par défaut elle contient le titre du document et son format de sortie. Yaml

C’est là qu’on ajoute les options permettant de générer une table des matières, des références bibliographiques qui affecteront l’ensemble du document.

Pour inclure les feuilles de style ou les images avec il faut ajouter l’option embed-resources: true dans le Yaml.

Structure d’un chunk

L’option toc permet de générer le sommaire de la page. Ici on affiche les titres de niveaux 1 à 3.

Les 2 modes d’édition

  • Le mode Visual

Permet de s’aider des boutons pour mettre en forme les textes ou insérer des éléments. Il est utile pour débuter avec le langage markdown et générer des “modèles” de syntaxe markdown.

  • Le mode Source

Nécessite de connaître les éléments de syntaxe markdown pour effectuer les opérations décrites dans la partie suivante.

Intervenir sur le corps de texte

On peut écrire dans le document tout le texte qu’on veut : commentaires, précisions… et modifier sa mise en forme au fur et à mesure.


Les balises de la syntaxe Markdown sont simples :

Les niveaux de Titres

Indiqués par des # dont le nombre définit le niveau du titre.

  • # Titre de niveau 1,
  • ## Titre de niveau 2,
  • ### Titre de niveau 3,
Astuce

Ajouter des #### après le titre permet de générer automatiquement le sommaire du document (alternative à l’option du yaml).

Modifier le Style

Le nombre de * encadrant le texte permet de modifier son style :

  • *Texte en Italiques* = Texte en Italiques
  • **Texte en Gras** = Texte en Gras
  • ~~Texte Barré~~ = Texte Barré

Citer des noms de fonctions ou packages

Les textes doivent être entourés de guillemets obliques: (Windows : *AltGr + 7*). Par exemple : ``str`` =str`.

Ecrire des listes

Liste à puces

}

Donnera

  • premier niveau
    • premier niveau de sous-liste
  • deuxieme élément
    • wbxb
    • fdsfhbfgg
Astuce

Finir une ligne par un double-espace permet de faire un saut de ligne.
Il peut-être utile de finir votre puce par un double-espace pour bien indiquer qu’on passe à la puce suivante.

Liste à éléments numérotés

  1. premier élément
  2. deuxième élément

Ajouter des liens hypertexte

Mettre le texte à afficher entre crochets puis le lien entre parenthèses.

Exemple

Vers le site de SMS Ined : [Service méthodes statistiques-Ined](https://sms.site.ined.fr/) Donnera : Service méthodes statistiques-Ined

Insérer des éléments

On peut utiliser le mode visual et choisir l’élément à ajouter via le menu.

On accède aux options pour améliorer le rendu de chaque élément avec le bouton Options.

On peut ajouter chacun de ces éléments en utilisant la syntaxe Markdown via le mode Source.

Un tableau

Les | indiquent les colonnes et les - la délimitation entre la ligne des noms de colonnes et le reste du tableau.

Si par exemple on veut créer un tableau de 3 colonnes, un entête de ligne et 3 lignes on écrit :

| col1 | col2 | col3 | |------|------|------| | a | 1 | za | | b | 2 | ze | | c | 3 | zr |


Donnera =>

col1 col2 col3
a 1 za
b 2 ze
c 3 zr

Pour générer des tableaux de manière interactive et récupérer le code, on peut utiliser Markdown tables generator.

Une image

Pour ajouter des images dans le document, les placer (de préférence) dans un dossier dédié (images, par exemple) et les insérer dans le document avec la syntaxe :

![Légende de mon image](images/MonImage.png)

Exemple

![Exemples de formats de sortie](images/MonImage.png){fig-align="left" width="50%"}

Donnera
Exemples de formats de sortie

On y ajoute les options {fig-align="left" width="50%"} pour que l’image soit alignée sur la gauche et réduite de moitié par rapport à sa taille initiale.

Une équation

Nécessite de rédiger la formule en Latex.

Pour écrire son équation dans une ligne dédiée, entourer la formule de deux dollars.

Exemple

$$y = ax + b$$

donnera :

Astuce

Pour écrire la formule dans du texte, utiliser uniquement un dollar de chaque côté : $y = ax + b$

Des notes de bas de page

On ajoute des notes de bas de page courtes (chiffre ou lettre)1 ou longues (paragraphe)[^toto] dans le document généré.

  • Note de bas de page courte : On écrit [^i] à l’endroit d’insertion où i peut être n’importe quel texte ou nombre (sans espace). On peut mettre plusieurs points d’insertion dans une note.

  • Note de bas de page longue : On écrit [^contenu]et les paragraphes suivants sont indentés, pour indiquer qu’ils appartiennent à la note. Penser à faire une double indéntation devant les paragraphes conposant la note de bas de page.

Exemple

Ceci est un texte qui se réfère à la note suivante[^1] [^1]: Ceci est une note de bas de page.

Donnera : Ceci est un texte qui se réfère à la note suivante2

Insérer des citations et une bibliographie

On peut utiliser le mode Visual ….

Les références bibliographiques sont stockées dans fichier au format bibTex (importé d’un logiciel dédié ou simplement ou généré avec un éditeur de texte). Ce fichier d’extension.bib est placé dans le projet R.

Exemple de fichier au format bibTex

Les citations sont appelées grâce à la balise @. Il est possible d’appeler une citation de différentes manières :

  • [@aciter1] pour citer une référence,
  • [@aciter1 ; @aciter2] pour en citer plusieurs
  • @aciter
Exemple

Si vous ne trouvez pas ce qui vous convient sur le web, vous pouvez acheter ces livres : [@Guide ; @ModernData].

Donnera : Si vous ne trouvez pas ce qui vous convient sur le web, vous pouvez acheter ces livres (Xie 2018 ; Benjamin S. Baumer 2021).

La bibliographie ci-dessous est générée à la fin du document.

Bibliographie

Analyser et rédiger simultanément

Les Chunks

Les chunks permettent d’insérer du code R dans le document Quarto.

L’exécution du code permet d’afficher les résulats dans le document généré en sortie.

Ce sont des pavés delimités par la syntaxe suivante :

Structure d’un chunk

Ces chunks permettent d’exécuter le script par parties pour tester la syntaxe ou ajouter des commentaires au fur et à mesure de l’analyse.

  • Il peut être utile de donner un nom (unique) à ses chunks.

  • Les boutons en haut à droite du pavé servent à paramétrer les options d’exécutions du script. Par exemple, l’option echo = FALSE permet de ne pas afficher le code R.

  • On ajoute un chunk dans le document en cliquant sur l’icône Insert a new code chunk en haut de la zone du chunk (ou avec le raccourci CTRL + Alt + i).

  • On peut ajouter des commentaires dans les chunks à l’aide de # .

  • On exécute le code R au fur et à mesure via le bouton Run Current Chunk en haut à droite du chunk.

Exemple

Décrire le contenu d’une table contenue dans le package questionr.

library(questionr)
data("hdv2003")
table(hdv2003$trav.imp,hdv2003$sexe)
                              
                               Homme Femme
  Le plus important               13    16
  Aussi important que le reste   159   100
  Moins important que le reste   328   380
  Peu important                   20    32
Astuce

Pour présenter des tables simples dans R, utiliser la fonction kable()du package knitr.

library(knitr)
kable(table(hdv2003$trav.imp,hdv2003$sexe))
Homme Femme
Le plus important 13 16
Aussi important que le reste 159 100
Moins important que le reste 328 380
Peu important 20 32

Transformer un document Rmarkdown en Quarto

On peut reprendre un document écrit en Rmarkdown avec Quarto. Pour cela, il suffit de changer l’extension du fichier (càd remplacer .rmd par .qmd) et adapter le yaml. Les options du chunk peuvent aussi changer.

Autres ressources utiles

Les références

Benjamin S. Baumer, Nicholas J. Horton, Daniel T. Kaplan. 2021. Modern Data Science with R (2nd ed.). Routledge.
Xie, Allaire, Y. 2018. R Markdown: The Definitive Guide. 1st ed. Chapman; Hall/CRC. https://doi.org/10.1201/9781138359444.

Notes de bas de page

  1. Ceci est une note de bas de page.↩︎

  2. Ceci est une note de bas de page.↩︎