27 votes

Quelles meilleures pratiques utilisez-vous pour la programmation en R?

Quelles sont les bonnes pratiques de programmation en R ?

Étant donné que R est un langage spécial que je n'utilise pas tout le temps, je pirate généralement quelques scripts rapides qui font ce dont j'ai besoin.

Mais quels sont les conseils pour écrire du code R propre et efficace?

14voto

JD Long Points 20477

Je recommande le workflow Load, Clean, Func, Do de Josh Reich à partir de cette question précédente .

De plus, je recommande de suivre les directives de codage telles que le R Style Guide de Google . L'utilisation d'un guide de style de codage facilite la lecture du code plus tard.

14voto

Dirk Eddelbuettel Points 134700

Vous avez déjà fournir quelques conseils en indiquant votre approche est " hack rapide des scripts. Si vous voulez les meilleures pratiques et la structure simple, suivez les meilleures pratiques établies à partir de CRAN:

  • créer un package, cela ouvre la porte à l'exécution d' R CMD check ce qui est très utile
  • comme beaucoup l'ont déjà dit, avoir un paquet vous aide dans le code de l'écriture de la scène que vous êtes un peu forcé pour documenter le code, c'est une Bonne Chose (TM)
  • une fois que vous avez un paquet, ajoutez le code dans l' \examples{} de la section de la documentation comme ce sera exécution au cours de l' R CMD check et fournit une entrée facile pour les tests de régression
  • une fois que vous avez utilisé pour les tests de régression, de commencer à utiliser un package comme RUnit; qui vraiment est les meilleures pratiques
  • JD du pointeur de la Google Guide de Style est une bonne trop. Ce n'est pas le seul guide de style comme, par exemple, Henrik R Convention de Codage précède de quelques années; et il y a aussi Hadley du riff sur Google guide de style
  • Sinon, le bon vieux classique mais goldie "faites ce que vos collègues et ses coauteurs ne' s'applique aussi

6voto

Shane Points 40885

Je suis complètement d'accord avec les réponses existantes, en particulier concernant l'utilisation de paquets. Les Packages exige beaucoup de discipline, de la documentation et de la structure, qui aident à appliquer les meilleures pratiques (avec R CMD VÉRIFIER). Vous pouvez également utiliser les outils de code du package pour aider à cela. Utiliser le roxygen paquet pour la documentation.

Au-delà de cela, je vous recommandons de ne pas seulement vectoriser votre code, mais plus particulièrement, faire tous les efforts pour vectoriser vos fonctions, ce qui signifie que vous devriez être en mesure de fournir vecteur d'arguments et d'obtenir des vecteurs de retour (même des choses comme les appels de base de données). Qui va vraiment améliorer votre code d'efficacité et de clarté dans le long terme.

Enfin, j'aime vraiment utiliser quelque chose comme Sweave pour organiser mon code en clair lettré reproductible de recherche chaque fois que la rédaction d'un rapport. Avec cela, je recommande l'utilisation du cache de paquet.

2voto

Frank Points 16055

Pour plus d'efficacité, préférez les opérations vectorielles aux boucles for .

1voto

stevejb Points 401

C'est une bonne pratique de programmation en général, mais utilisez un système de contrôle de version tel que SVN pour gérer votre code.

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