Éléments d'un package R

Développer des packages R

Jasmin Ludolf

Content Developer

La puissance des packages R

 

  • Partager et réutiliser du code entre projets, entreprise et communauté

 

Ce cours :

  • Créer des packages R depuis les bases
  • Avec documentation et tests

Illustration de la communauté des packages R

Développer des packages R

Composants d'un package R

Exemple de structure de package

1 Tree generated with https://tree.nathanfriend.io/
Développer des packages R

Composants d'un package R

 

  • Fonctions
  • Données

Exemple de structure de package

Développer des packages R

Composants d'un package R

 

  • Fichiers de support :
    • DESCRIPTION
    • NAMESPACE

Exemple de structure de package

Développer des packages R

Composants d'un package R

 

  • Modèles R Markdown :
    • Comment utiliser le package
  • R Markdown sert à créer des rapports dynamiques

Exemple de structure de package

Développer des packages R

Composants d'un package R

 

  • Documentation
    • Exemples d'utilisation des fonctions

Exemple de structure de package

Développer des packages R

Composants d'un package R

 

  • Tests unitaires
    • Tests automatisés
    • Garantissent le bon fonctionnement des fonctions et du code

Exemple de structure de package

Développer des packages R

Composants d'un package R

 

  • Vignettes
    • Tutoriels détaillés sur le package

Exemple de structure de package

Développer des packages R

Fonctionnalités de base du package

A minima, les packages R doivent inclure :

  • Répertoire R
  • Répertoire man
  • Fichier NAMESPACE
  • Fichier DESCRIPTION
Développer des packages R

Répertoire R

 

  • Où résident les fonctions du package
  • Fichiers séparés pour chaque composant du package
  • Inclure un fichier avec le nom et les détails du package

 

Structure du répertoire R

Développer des packages R

Répertoire man

 

  • Répertoire « manual »
  • Documentation des fonctions et objets du package

 

Structure du répertoire man

Développer des packages R

NAMESPACE

  • Indique les fonctions importées d'autres packages
  • Liste les fonctions disponibles pour les utilisateurs
# Generated by roxygen2: do not edit by hand
export(distance_converter)
export(temp_converter)

importFrom(tibble,tibble)
Développer des packages R

DESCRIPTION

  • Contient les métadonnées du package
Package: ourPackage
Title: What the Package Does (One Line, Title Case)
Version: 0.0.0.9000
Authors@R: 
    person("First", "Last", , "[email protected]", role = c("aut", "cre"),
           comment = c(ORCID = "YOUR-ORCID-ID"))
Description: What the package does (one paragraph).
License: `use_mit_license()`, `use_gpl3_license()` or friends to pick a
    license
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.2.3
Depends: 
    R (>= 2.10)
LazyData: true
Développer des packages R

Passons à la pratique !

Développer des packages R

Preparing Video For Download...