Le nom d’un package R est une étape qui me parait importante. En effet, ce nom sera le premier contact avec l’utilisateur et il sera également souvent appelé à l’aide des fonctions library() ou require(). Ce nom doit donc à la fois avoir du sens, donner une indication claire sur ce que permet le package et en même temps être facile à écrire pour pouvoir être appelé sans erreur.

Il existe sur le CRAN plus de 5000 packages. Ainsi il faut aussi éviter de choisir un nom déjà existant ou proche, qui risquerait de créer de la confusion auprès de l’utilisateur.

L’objectif de cet article est de décrire quelles sont les règles les plus adéquates pour trouver un bon nom pour un package R étant destiné à être publié sur le CRAN.

Méthode

Une recherche a été effectuée d’abord sur r-project.org afin de trouver une documentation officielle sur le sujet. Ensuite le nom des packages déjà existant sur le CRAN a été analysé. Une recherche plus large a été effectuée sur un moteur de recherche généraliste. Enfin, une question a été posée sur le site de question-réponse stackoverflow.

Résultats

Documentation officielle

La seule référence au nom du package trouvé dans la documentation sur la création de packages, « Writing R Extensions », concerne le champ package dans le chapitre sur le fichier DESCRIPTION. Il est indiqué :

The mandatory ‘Package’ field gives the name of the package. This should contain only (ASCII) letters, numbers and dot, have at least two characters and start with a letter and not end in a dot. En résumé, les contraintes sont :

  • Uniquement des caractères ASCII [a-z], [A-Z], [0-9], et [.] ;
  • Longueur > à 2 caractères ;
  • Le premier caractère doit être une lettre ;
  • Ne doit pas finir avec un point.

Donc aucune limite en terme de nombre de caractères.

Vérifier la disponibilité

La deuxième étape pour choisir un nom est d’éviter qu’il soit déjà utilisé. Pour se faire, on peut suivre les instructions proposées dans cette question de stackoverflow, en particulier l’utilisation de la fonction available.packages() afin d’explorer les packages existant sur le CRAN.

En plus de la liste des packages du CRAN, il serait bon d’analyser également ceux de Bioconductor et également ceux en cours de développement sur GitHub et R-Forge

Règles de nommage

Tout comme il existe des règles pour écrire du code propre, en particulier sur le nommage des variables, on peut imaginer des règles pour le nom des packages. Après avoir posé la question sur stackoverflow, il apparait que la seule référence intéressante est le chapitre « Package basics » de l’ouvrage « Advanced R » en cours de rédaction par Hadley Wickham. Le paragraphe « Getting started » donne les indications suivantes en plus de celles du CRAN :

  • Le nom doit être facilement trouvé s’il est recherché dans Google ;
  • Éviter de mélanger les lettres majuscules et minuscules ;
  • Utiliser des abréviations ;
  • Ajouter un « R » dans le nom ;
  • Trouver un nom évocateur et le modifier pour qu’il soit unique.

Conclusion

Le nom d’un package R doit être à la fois significatif et en même temps facile à écrire. Ce choix de nom s’apparente aux bonnes pratiques de codages que nous avions déjà décrites dans un précédent article.