Développer efficacement en R
Cours
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
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() |
… | … | … |