48 votes

Organiser le code source de R

Tous,

Je commence à écrire du code R orienté objet pour la première fois et je prévois d'avoir plusieurs fichiers R avec des dépendances entre eux. Je suis nouveau dans R et je n'ai encore rien écrit en dehors d'un seul script massif pour tester des idées. Existe-t-il des ressources en ligne qui donnent des conseils sur la façon d'organiser le code ? En dehors des descriptions sur la façon de construire des paquets, je ne parviens pas à trouver de tels conseils. A ce stade, je veux juste organiser le code de manière à ce que le chargement et l'interaction avec la collection de routines soient aussi simples que possible.

J'apprécierais tout conseil que vous pourriez me donner.

Chris

44voto

Shane Points 40885

Cette question est très étroitement liée à : "Comment organiser de grands programmes R ?"

Vous devriez envisager de créer un paquet R. Vous pouvez utiliser le package.skeleton pour commencer à partir d'un ensemble de fichiers R. Je recommande aussi fortement d'utiliser roxygen de documenter le paquet dès le début, car il est beaucoup plus difficile de le faire après coup.

Lire "Ecrire des extensions R" . Le livre en ligne "Statistics with R" a une section sur ce sujet . Jetez également un coup d'œil à Création de paquets R : Un tutoriel par Friedrich Leisch. Enfin, si vous êtes dans l'État de New York, venez assister à la prochaine réunion du groupe de travail sur l'utilisation de R à New York, qui se déroulera le 15 novembre. "Authoring R Packages : a gentle introduction with examples" (en anglais) .

Juste pour rappeler quelques suggestions sur les bonnes pratiques :

  • Un paquet vous permet d'utiliser R CMD check qui est très utile pour détecter les bogues ; séparément, vous pouvez envisager d'utiliser la fonction codetools paquet.
  • Un paquet vous oblige également à faire un minimum de documentation, ce qui conduit à de meilleures pratiques à long terme.
  • Vous devriez également envisager de faire des tests unitaires (par exemple avec RUnit ) si vous voulez que votre code soit robuste et facile à maintenir.
  • Vous devriez envisager l'utilisation d'un guide de style (par ex. Guide de style Google ).
  • Utilisez un système de contrôle de version dès le début, et si vous comptez rendre votre code open source, envisagez d'utiliser github/googlecode ou r-forge.

Editar:

En ce qui concerne la manière d'effectuer des modifications incrémentielles sans reconstruire et installer le paquet complet : je trouve que la chose la plus simple à faire est d'effectuer des modifications dans le fichier R concerné et d'utiliser ensuite la fonction source pour charger ces modifications. Une fois que vous avez chargé votre bibliothèque dans une session R, elle sera toujours plus basse dans l'environnement (et moins prioritaire) que le .GlobalEnv, de sorte que les changements que vous sourcez ou chargez directement seront utilisés en premier (utilisez la commande search pour voir cela). De cette façon, vous pouvez avoir votre paquet sous-jacent et vous écrasez les changements au fur et à mesure que vous les testez dans l'environnement.

Vous pouvez également utiliser un IDE comme StatET ou ESS. Ils permettent de charger très facilement des lignes ou des fonctions individuelles à partir d'un paquetage R. StatET est particulièrement bien conçu pour gérer les paquets dans une structure de type annuaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X