Introduction
Les paquets R sont un moyen puissant de regrouper votre code R, vos données et votre documentation dans un format réutilisable. Dans ce guide complet, vous apprendrez le processus complet de création, de documentation, de test, de maintenance et de publication des paquets R. Que vous souhaitiez partager votre travail sur CRAN, GitHub ou d’autres plateformes, la maîtrise de ces techniques est essentielle pour contribuer à l’écosystème R.
Configuration de l’environnement de développement des paquets
Avant de commencer, assurez-vous que les outils nécessaires sont installés. Les paquets devtools, usethis et roxygen2 sont fondamentaux pour le développement de paquets modernes.
#| label: install-packaging-tools
install.packages(c("devtools", "usethis", "roxygen2"))
library(devtools)
library(usethis)
library(roxygen2)
Création d’une structure de paquetage
Utilisez usethis pour créer un nouveau squelette de paquetage. Cette commande met en place une structure de répertoire de base avec des dossiers pour le code R, la documentation, les tests, etc.
#| label: create-package
::create_package("path/to/your/packageName") usethis
Documenter votre package avec roxygen2
La documentation est essentielle. Utiliser roxygen2 pour écrire de la documentation en ligne qui est automatiquement convertie en fichiers d’aide.
#| label: document-example
#' Add Two Numbers
#'
#' This function adds two numeric values.
#'
#' @param a A numeric value.
#' @param b A numeric value.
#' @return The sum of a and b.
#' @examples
#' add_numbers(3, 5)
<- function(a, b) {
add_numbers + b
a
}
# Générer de la documentation
::document() devtools
Test de votre package
Mettez en place des tests à l’aide du paquet testthat pour vous assurer que votre paquet fonctionne correctement.
#| label: setup-tests
::use_testthat()
usethis
# Exécuter des tests
::test() devtools
Construction et vérification du paquetage
Construisez et vérifiez votre paquetage pour détecter les erreurs ou les avertissements.
#| label: build-check
::build()
devtools::check() devtools
Publication de votre paquetage
Publier sur CRAN
Suivez les directives du CRAN et utilisez devtools::release()
pour soumettre votre paquet à l’examen du CRAN.
Partager sur GitHub
Vous pouvez également publier votre paquetage sur GitHub pour des mises à jour continues et des contributions de la communauté.
#| label: publish-github
::use_git()
usethis::use_github() usethis
Maintenance et mise à jour de votre paquetage
Après la publication, il est important de maintenir votre package à jour:
Contrôle de version:
Utiliser le versionnement sémantique pour suivre les modifications. Mettez à jour la version de votre paquetage et documentez les modifications dans un fichier NEWS.Corrections de bogues et améliorations:
Mettez régulièrement à jour votre paquetage en fonction des commentaires des utilisateurs et des changements dans les dépendances.Mises à jour de la documentation:
S’assurer que votre documentation reste à jour au fur et à mesure de l’évolution de votre package.
Documentation automatisée et création d’un site web
La création d’un site web pour votre paquetage à l’aide de pkgdown* peut rendre votre documentation plus accessible.
#| label: pkgdown-setup
install.packages("pkgdown")
::build_site() pkgdown
Ce processus génère un site web statique pour votre paquetage, ce qui permet aux utilisateurs d’explorer plus facilement la documentation et les exemples.
Intégration continue (CI) pour les paquets R
La mise en place de pipelines CI/CD permet de maintenir la qualité de votre paquetage dans le temps. Utiliser des outils tels que GitHub Actions ou Travis CI pour exécuter automatiquement des tests et construire votre paquetage à chaque livraison.
Exemple : Flux de travail des actions GitHub
Créer un fichier .github/workflows/R-CMD-check.yaml
avec le contenu suivant:
name: R-CMD-check
on: [push, pull_request]
jobs:
R-CMD-check:
runs-on: ubuntu-latest
container:
image: rstudio/r-base:4.1.0
steps:
- uses: actions/checkout@v2
- name: Set up R
uses: r-lib/actions/setup-r@v2
- name: Install dependencies
run: Rscript -e 'install.packages(c("devtools", "roxygen2", "testthat"))'
- name: Check package
run: R CMD check .
Ce flux de travail vérifie automatiquement que votre paquetage ne contient pas d’erreurs ou d’avertissements à chaque demande d’ajout ou d’extraction.
Conception avancée des paquets
Pour les projets plus complexes, envisagez de concevoir votre paquetage en utilisant les systèmes d’objets S3 ou S4 de R:
Classes S3:
Fournir un moyen simple et flexible d’implémenter la programmation orientée objet dans R.Classes S4:
Proposer des définitions et une validation formelles des classes, ce qui est utile pour les projets plus robustes et à plus grande échelle.
Pour en savoir plus sur ces systèmes, consultez les tutoriels dédiés ou la documentation officielle de R.
Pièges courants et dépannage
Problèmes de documentation:
Assurez-vous que toutes les fonctions sont correctement documentées avec roxygen2 pour éviter les fichiers d’aide manquants.Conflits d’espace de noms:
Soyez prudent lorsque vous nommez les fonctions et les variables afin d’éviter les conflits avec les paquets existants.Gestion des dépendances:
Mettez régulièrement à jour les dépendances de votre paquetage et assurez la compatibilité avec les nouvelles versions de R.Gestion des erreurs:
Utiliser une gestion complète des erreurs et une journalisation dans votre paquetage pour faciliter le débogage et l’assistance aux utilisateurs.
Conclusion
Le développement et la publication de packages R est un processus gratifiant qui vous permet de partager votre code et de contribuer à la communauté R. En suivant les meilleures pratiques, depuis la configuration de votre environnement et la documentation de votre code jusqu’aux tests, à la maintenance et à la publication de votre paquetage, vous pouvez créer des paquetages robustes et réutilisables. Ce guide complet, avec des sections supplémentaires sur la documentation automatisée, l’intégration continue et la conception avancée de paquetages, fournit tous les outils dont vous avez besoin pour réussir.
Plus d’informations
Bon codage et prenez plaisir à développer et à partager vos paquets R!
Explorer d’autres articles
Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.
Réutilisation
Citation
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Développer et publier des paquets R},
date = {2024-02-10},
url = {https://www.datanovia.com/fr/learn/programming/r/advanced/developing-and-publishing-r-packages.html},
langid = {fr}
}