7
votes

Toute documentation pour optimiser les performances de R?

Je suis assez nouveau à r et une chose qui m'a frappé, c'est que cela fonctionne assez lent. Y a-t-il une documentation pour optimiser r? Par exemple, optimiser Python est décrit très bien ici . Dans mon cas particulier, je suis intéressé à optimiser R pour les travaux par lots.

J'ai essayé Googling pour une réponse bien sûr, mais ce n'est pas tout à fait facile pour google pour ROF depuis R est un joli petit modèle de recherche générique.


5 commentaires

@ C00Kiemonster, beaucoup de ce qui vaut pour Matlab, en termes d'optimisation, va également pour R. Ce n'est pas une langue de procédure et tenter de faire les choses de manière procédurale est une recette de frustration. Par exemple, évitez les boucles pour sur plus de plus que, disons, 1000 indices, à tous les coûts de R. (ils sont au moins un, et probablement deux ordres de grandeur plus lentement que même matlab.) Utiliser Les fonctions Appliquer partout où vous pouvez puisque la boucle se produit à un niveau inférieur et est donc beaucoup plus efficace. De plus, le gestionnaire de mémoire de R est généralement médiocre, alors en soyez au courant.


Au lieu de Google, essayez resek.org .


@ C00kiMonster, cette question est plus adaptée à Stackoverflow. N'oubliez pas que le code mal écrit court lent partout. Je trouve moi-même r joli rapidité, peu de fois réécrit quelque chose que c n'a pas apporté d'immenses avantages. En général, vous devriez fournir plus de contexte, car pour beaucoup de personnes R est assez rapide, votre expérience peut donc être une valeur aberrante.


Je suis sûr que cela obtiendra des réponses plus et meilleures ici.


Cette question a été discutée dans plusieurs threads, par exemple: Stackoverflow. com / questions / 1330944 / ...


4 Réponses :


2
votes

"C'est assez lent" est très vague. Il existe de nombreuses techniques pour utiliser r de la manière la plus efficace, la règle générale est "Éviter les boucles et vectorisations" - mais il y a tellement plus de choses que ce que les objets sont préalablement alloués plutôt que redimensionnés à la volée.

Cela dépend vraiment de ce que vous faites, alors s'il vous plaît être plus précis. La documentation standard dispose de nombreux conseils pour les bases et votre question ne donne pas vraiment la possibilité que quelqu'un ait plus que régurgiter ceux-ci.

Lorsque Standard R est vraiment limité pour vos besoins, vous pouvez écrire directement dans une langue compilée telle que c ou utiliser des interfaces avancées telles que la RCPP. Pour d'autres outils et techniques qui s'étendent au-delà de la boîte à outils de base R Consultez la vue "Computing hautes performances" sur le cran.


0 commentaires


5
votes

Oui, R est un peu maladroit pour un terme de recherche, alors essayez RsiteSearch ("Performance") dans R - Cela recherchera dans de nombreuses sources DOCS R.


0 commentaires