{fusen} est maintenant disponible sur CRAN !

Pictures of multiple origamis boxes and animals
Tags : développement, package, Rmarkdown
Date :

Avec la première version de {fusen} 0.2.4 maintenant disponible sur CRAN, vous n’avez plus d’excuses pour ne pas l’essayer dans vos flux de travail quotidiens.

install.packages("fusen")

Ajouter des nouvelles fonctionnalités documentées et testées dans un package existant

origami box in blue with eyes

Si vous développez déjà des packages, {fusen} est fait pour vous.

Développer un paquet nécessite d’écrire du code et des exemples à plusieurs endroits : “R/”, “tests/”, “vignettes/”. Avec {fusen}, vous pouvez tout écrire au même endroit.

  • Ouvrez un projet pour un de vos paquets déjà existant.
  • Lancez dans la Console : fusen::add_dev_history(name = "additional")
    • Un fichier Rmd apparaît dans “dev/dev_history.Rmd”. Ouvrez-le.
  • Remplissez-le comme si chaque chunk était indépendant des autres. Comme si vous écriviez dans des fichiers différents.
  • Exécutez la commande du dernier chunk : fusen::inflate(rmd = "dev/dev_history.Rmd", name = "Mon nom de vignette")

C’est tout!
Vous avez ajouté une nouvelle fonction dans votre package, avec un exemple, un test et une nouvelle vignette.

Créer votre package est aussi facile qu’écrire un fichier Rmarkdown

origami box in yellow

Si vous voulez essayer de développer vos premiers packages, {fusen} est fait pour vous.

Vous pensez que l’écriture de packages est réservée aux développeurs avancés qui veulent partager leur travail sur CRAN. Vous avez tort !
Les paquets sont destinés aux utilisateurs de R qui utilisent le même script dans plusieurs projets. Peut-être avez-vous déjà créé un fichier R que vous sourcez chaque fois que vous en avez besoin. Mais ce code est-il testé et documenté ? Comment faire pour le partager avec vos collègues à chaque nouvelle fonctionnalité ? Comment d’autres utilisateurs peuvent-ils proposer des modifications sans casser vos codes existants ?
Créez un package !

Avec {fusen}, le pas entre l’écriture d’un fichier Rmd avec script complémentaire, et l’écriture d’un paquet est plus petite que vous ne le pensez. Allez à la section “Construire un paquet à partir d’un exemple reproductible” et essayez-le. Vous allez construire ce package à partir d’un simple fichier Rmarkdown.

Utilisez la robustesse des packages R pour vos analyses

origami box in pink

Si vous voulez essayer d’écrire des analyses de données dans un paquet, {fusen} est fait pour vous.

Il existe de multiples façons plus ou moins recommandées de développer une analyse de données dans R afin que votre code soit reproductible et partageable. Chez ThinkR, nous pensons que tout devrait être un package. Pourquoi ? Parce qu’il existe de nombreux outils pratiques développés autour des packages qui assureront la robustesse de votre travail. Cela vous encouragera également à documenter votre travail afin que les autres utilisateurs puissent le comprendre, l’adapter et le reproduire sur leurs propres données. N’est-ce pas là l’essence même de la science ? Partager son travail et ses idées avec les autres ?

Si vous utilisez déjà Rmarkdown dans votre travail parce que vous vous souciez de la reproductibilité, {fusen} vous aidera à structurer votre Rmd et à le gonfler comme un package en une seule commande. Allez à la section “Construire un paquet à partir d’un exemple reproductible” et essayez-le !

Construire un paquet à partir d’un exemple reproductible

hex log of fusen package

Ceci est l’exemple du README de {fusen} sur GitHub

  • Créer et ouvrir un nouveau répertoire ou un nouveau projet.
  • Ajouter le modèle Rmd dans le projet et ouvrir le fichier.
dev_file <- fusen::add_dev_history(open = TRUE)
  • Exécuter le premier chunk demandant de décrire votre paquet et de le mettre sous licence
fill_description(fields = list(Title = "My Awesome Package"))
usethis::use_mit_license("Sébastien Rochette")
  • Suivre le guide pour écrire votre analyse et vos fonctionnalités.
    • Vous les développerez probablement avec quelques exemples et tests.
      Pour la première fois, vous pouvez laisser le code du Rmd tel quel, c’est déjà le contenu d’un paquet qui fonctionne.
  • Transformer ce Rmd en package.
fusen::inflate(rmd = dev_file, name = "my-functionnality", check = TRUE)

C’est tout ! Vous avez construit un package !

Testons-le maintenant :

  • Installez votre paquet localement
remotes::install_local()
  • Redémarrez votre session R pour nettoyer l’environnement
    • Vous pouvez redémarrer votre session RStudio et vous verrez l’onglet “Build” apparaitre.
  • Testez les fonctions de votre package
my.package::my_median(1:12)
  • Vérifiez que la documentation correcte en créant localement le site web dédié du package.
# Build {pkgdown} to test it
pkgdown::build_site()
# > See references and articles
# Hide output from package and git
usethis::use_build_ignore("docs")
usethis::use_git_ignore("docs")

Pour aller plus loin

Je recommande fortement de combiner vos développements de package avec git. Utilisez usethis::use_git() dans un chunk development et commitez votre travail pour garder la trace de vos modifications.


À propos de l'auteur

Sébastien Rochette

Sébastien Rochette

Modélisateur, formateur R, joueur de cartographies


Leave a Reply


Also read