Développer efficacement en R

Cours

Auteur·rice·s
Affiliation

Ghislain Durif

Frédéric Santos

CNRS, Univ. Bordeaux, MCC – UMR 5199 PACEA

1 Les packages R utiles au développeur

Il est parfaitement possible de concevoir un package R en n’utilisant que les fonctionnalités R de base et un bon éditeur de code. La totalité des quelques premiers milliers de packages R a été développée ainsi. Par exemple, un document de Christophe Genolini détaille le processus “historique” et minimal de création d’un package.

Toutefois plusieurs packages R (généralement conçus par l’entreprise Posit) fournissent des outils facilitant le travail de développement d’un package, et rendent le workflow plus sécurisé. Dans cette formation, nous utiliserons notamment :

  • {devtools}, qui vise à “rendre plus aisé le développement de packages grâce à des fonctions R simplifiant et gérant les tâches courantes” du développeur (construire le package, lancer des tests unitaires, charger les fonctions en mémoire, …);
  • {usethis}, qui vise à “automatiser les tâches répétitives dans le processus de développement et à éviter de les faire manuellement” (initialiser un dépôt Git, organiser la structure des fichiers d’un projet, …) ;
  • {roxygen2}, qui fournit une nouvelle manière d’écrire la documentation des fonctions d’un package.

Aucun de ces outils n’est strictement nécessaire, mais la plupart des développeurs R les utilisent aujourd’hui et les préfèrent aux fonctionnalités plus rustiques incluses dans R-base. Un manuel spécifique détaille l’utilisation de cet écosystème de packages R utiles au développeur (Wickham et Bryan 2023).

2 Équivalence entre ces outils et R-base

Table 1: Quelques équivalences de fonctionnalités dans le processus de création d’un package R.
Fonctionnalité R-base Écosystème {devtools}
Générer un template de package package.skeleton() create_package()
Écrire la documentation prompt() pour un template de fichier .Rd à éditer à la main Documentation écrite dans le code .R, puis document() pour générer les pages d’aide
Vérifier le package R CMD check à exécuter dans la console système Fonction R check()
Retour au sommet

Références

Wickham, Hadley, et Jennifer Bryan. 2023. R Packages: Organize, Test, Document, and Share Your Code. 2ᵉ éd. Beijing: O’Reilly.