Structure d’un package R

Cours

Auteur·rice
Affiliation

Frédéric Santos

CNRS, Univ. Bordeaux, MCC – UMR 5199 PACEA

Avant de commencer à créer notre propre package, commençons par observer et étudier la structure générale d’un package R. Tout ce qui suit est un condensé de la documentation officielle de R sur le sujet, que vous pourrez trouver sur la page Writing R extensions.

Prenons l’exemple du package {ClusterR}, disponible sur le CRAN mais également développé sur GitHub. Comme nous allons le voir, ce package est un exemple intéressant de l’application des bonnes pratiques de développement développées dans le chapitre précédent.

Si l’on inspecte (par exemple à partir de GitHub) le contenu de ce package, nous avons la structure générale suivante :

.
├── data
│   ├── dietary_survey_IBS.rda
│   ├── mushroom.rda
│   └── soybean.rda
├── DESCRIPTION
├── Dockerfile
├── inst
│   ├── CITATION
│   ├── include
│   └── papers_references
├── man
│   ├── AP_affinity_propagation.Rd
│   ├── AP_preferenceRange.Rd
│   ├── ...
│   └── tryCatch_optimal_clust_GMM.Rd
├── NAMESPACE
├── NEWS.md
├── R
│   ├── clustering_functions.R
│   ├── ClusterR.R
│   └── RcppExports.R
├── README.md
├── src
│   ├── export_inst_folder_headers.cpp
│   ├── ...
│   └── RcppExports.cpp
├── tests
│   ├── testthat
│   └── testthat.R
├── tic.R
└── vignettes
    ├── dog.jpg
    ├── ...
    ├── Rplot.png
    └── the_clusterR_package.Rmd

Détaillons le rôle de la plupart de ces éléments (les quelques éléments laissés de côté seront abordés lors de la dernière matinée de la formation).

Créer un package R passe donc par le fait de peupler l’ensemble de ces dossiers et fichiers avec du code R ou de la focumentation.

Notons que certains de ces éléments devront forcément être créés à la main par l’auteur du package (par exemple, le code source .R), alors que certains autres fichiers pourront être créés programmatiquement plutôt qu’écrits à la main. C’est notamment le cas des fichiers de documentation .Rd, comme nous le verrons plus tard.

Retour au sommet