::create_package("<path_to_folder/name_of_package>") usethis
Nouveautés {learnr}
Introduction
Nous allons ici présenter les nouveautés du package {learnr} qui permet de créer des tutoriaux interactifs. {learnr} avait déjà été discuté durant la semaine Finist’R 2020
{learnr} repose sur {shiny}. Le tutoriel est construit à partir d’un fichier Rmarkdown et peut être soit executé en local via le bouton run app
soit en déployant le fichier sur un serveur Shiny.
Depuis 2020 environ, il est possible d’intégrer un tutoriel {learnr] dans un package, ce qui rend les classiques vignettes interactives. Les nouvelles versions de RStudio ont de plus inclus un bouton tutorial
disponible dans le panel “Environnement, Git etc…”.
L’idée est de partager un tutoriel facilement à une large audience et pour cela il est maintenant possible de les intégrer dans un package. Cela peut être intéressant pour des tutoriaux à destination d’étudiants mais également pour des tutoriaux à intégrer dans les packages que vous développez pour rendre l’initiation aux méthodes développées plus interactives qu’une vignette.
L’avantage technique d’intégrer un tutoriel {learnr} dans un package est qu’il est alors possible, après avoir installé le package, d’exécuter le tutoriel en local sans avoir à le déployer sur un serveur Shiny. C’est donc gratuit et simple d’utilisation.
A noter qu’il n’est pas nécessaire que le package contenant le tutoriel soit déposé sur le CRAN ou autre, qu’il contienne d’autres fichiers que le tutoriel. Tout est donc possible.
Les étapes pour créer un package contenant un tutoriel:
- Si le package n’est pas déjà créé:
- Pour créer le fichier du tutoriel:
::use_tutorial("<name-of-learnr-file>", "<Title You'd Like the User to See>") usethis
Puis dans RStudio, cliquer sur “Build > Install and Restart”.
Si nécessaire, rajouter le package {gradethis} (noter la fonction de {usethis} spécifique pour les install de package en développement),
::use_dev_package("gradethis") usethis
- Si nécessaire, rajouter les packages présent sur le CRAN toujours avec {usethis}
::use_package("palmerpenguins") usethis
Si nécessaire, éditer le fichier DESCRIPTION
Exécuter
usethis::use_readme_rmd()
pour rajouter un fichier README. puis compiler le tout.Déposer le package sur gitlab ou github puis partager le repository qui peut être installé avec les lignes de code suivantes:
::install_github("<your-repo>/<package-name>")
devtools::install_gitlab("<your-repo>/<package-name>") devtools
Lorsque le package est installé, aller dans le panel
Tutorial
dans RStudio et c’est parti…Quelques outils utiles.
Il est possible de chaîner des chunks en utilisant la fonctionnalité exercise.setup
dans les chunks. Par exemple, nous pouvons effectuer
```{r exo1,exercise=TRUE}
```
```{r exo1-solution}
= 2+1
x ```
```{r exo2,exercise=TRUE,exercise.setup="exo1-solution"}
```
```{r exo2-solution,exercise.setup="exo1-solution"}
= x *3
y ```
```{r exo3,exercise=TRUE,exercise.setup="exo2-solution"}
```
etc.
Le package {gradethis} permet de vérifier les solutions proposées à un exercice. Par exemple,
L’exercice consiste à faire 2+3
```{r exo3}
```
```{r exo3-solution}
2+3
```
on ajoute un chunk pour vérifier que le code est le bon (mais cela demande que la solution proposée contienne le même code que dans la solution)
```{r exo3-code-check}
grade_this_code()
```
sinon on peut simplement vérifier la sortie du code proposé par l’utilisateur :
```{r exo3-check}
grade_result(
pass_if(~identical(.result, 5))
)```
Références
- https://rstudio.github.io/learnr/
- https://education.rstudio.com/blog/2020/09/delivering-learnr-tutorials-in-a-package/