L’Éloge de R

Cet article est destiné à deux types de lecteurs :

  • ceux qui utilisent déjà R et qui aimeraient convaincre leur entourage d’en faire de même.
  • ceux qui n’utilisent pas encore R. J’espère qu’à ceux-là, ces quelques paragraphes leur donneront l’envie de s’y mettre !

Le logo de R. Bon ça n'est sans doute pas le meilleur atout de cet excellent logiciel !

Au cas où vous ne le sauriez pas, R n’est pas seulement la dix-huitième de l’alphabet, c’est un logiciel libre dédié à l’analyse de données. Son utilisation se répand assez rapidement dans les universités mais semble encore relativement rare dans les entreprises, surtout en France où SAS est très utilisé pour des raisons historiques.

Cela fait trois ans maintenant que j’utilise R. Auparavant, j’ai été amené à utiliser d’autres logiciels tels que SAS, Stata ou encore Eviews et bien sûr Excel. Mais à mon sens aucun de ces logiciels n’arrive à la cheville de R !

Pourquoi utiliser R ? L’argument d’autorité

R est utilisé par des entreprises renommées telles que Google, Facebook, OkCupid ou encore le New York Times ! Bon j’avoue que cet argument est un peu court : SAS par exemple est également très utilisé par de grosses sociétés.

Néanmoins, Google est certainement la société dont le revenu dépend le plus de la collecte et de l’analyse de données. Le fait que Google utilise R indique à quel point le logiciel est fiable et puissant.

R sait tout faire, même le café !

La vraie raison pour laquelle il faut utiliser R — et pour laquelle ces sociétés utilisent R — est que ce logiciel est excellent pour manipuler des données, les visualiser et les analyser.

R a été développé par des statisticiens pour des statisticiens. Dès que l’on a compris la structure du langage, on peut faire très facilement et très rapidement des trucs de statisticiens comme importer des données, les parcourir, les décrire, les transformer, les visualiser, les utiliser pour faire des estimations ou des prédictions… La version de base de R contient énormément de fonctions qui sont largement suffisantes pour la plupart des projets.

Un exemple de graphique réalisé avec R. Le logiciel est réputé pour la qualité de ses graphiques.

Mais l’intérêt majeur de R est qu’on peut en augmenter à tout moment les fonctionnalités grâce à des extensions qu’on appelle « package », « librairie » ou « bibliothèque ». Ces extensions sont produites par de très nombreux contributeurs et elles sont de ce fait très très très nombreuses (plusieurs milliers). Grâce à elles le potentiel de R est quasi infini. Si vous avez un besoin spécifique, il y a de très fortes chances pour que quelqu’un ait eu le même besoin avant vous et ait publié sa propre extension pour y répondre. Quelques exemples :

Vous voulez utiliser une méthode d’estimation ultra-spécifique ? Il existe (probablement) un package pour ça.

Vous voulez faire du calcul symbolique ? Il existe un package pour ça.

Vous voulez configurer un cluster pour faire du calcul distribué ? Il existe un package pour ça

Vous voulez récupérer une carte Google Maps et afficher des informations dessus ? Il existe un package pour ça.

Vous voulez explorer un site web et en extraire des données ? Il existe un package pour ça.

Vous avez subitement envie de twitter ou d’envoyer un email avec R ? Il existe un package pour ça.

Vous voulez programmer votre machine à café avec R ? Il existe un package pour ça.

Bon le dernier package n’existe pas (encore), mais tous les autres existent réellement.

L’ajout d’une extension est très facile. Il suffit d’avoir une connexion internet et d’entrer dans le logiciel la ligne de code suivante :

install.packages("nom_du_package")

Et l’utilisation d’une extension se fait simplement avec cette deuxième ligne de code :

library(nom_du_package)

R est gratuit

La deuxième raison qui rend l’usage de R intéressant, c’est que c’est un logiciel gratuit. La gratuité présente un intérêt clair et immédiat : il n’y a pas besoin de se procurer une licence onéreuse pour s’en servir et on peut l’installer sur autant d’ordinateurs que l’on souhaite sans coût additionnel — ce qui n’est pas négligeable si l’on projette de faire du calcul distribué.

Mais la gratuité présente un autre avantage plus subtil. Si un jour vous avez envie de partager un morceau de votre code, rien ne pourra empêcher qui que ce soit de l’utiliser : quelque soit l’ordinateur utilisé (R fonctionne sur Mac, Linux et Windows) ou le budget disponible, il est possible d’installer R en quelques minutes et sans coût. Cet intérêt n’est pas négligeable, surtout lorsque l’on a besoin de travailler à plusieurs sur un projet. C’est également très intéressant dans le milieu universitaire où l’exigence de réplicabilité des procédures et des résultats se fait de plus en plus sentir.

Plus généralement, l’incitation à partager du code est d’autant plus grande que la base des utilisateurs effectifs et potentiels est importante. Peut-être que vous ça ne vous intéresse pas spécialement de partager avec les autres, mais ça peut intéresser les autres de partager avec vous ! C’est sans doute grâce à cela qu’il y a tant de contributeurs dans la communauté R et que ceux-ci sont très dynamiques.

La Communauté R

Lorsque l’on commence à utiliser R, on intègre sans le savoir une vaste communauté caractérisée par des valeurs telles que la convivialité, la solidarité, le partage ou encore l’amour du savoir.

Si un jour vous avez un problème, vous pouvez demander de l’aide. Même si vos questions se révèlent être naïves, personne ne vous insultera pour ça ! Au contraire, il y aura toujours quelqu’un pour s’empresser de vous répondre avec amabilité.

La communauté R est extrêmement dynamique et réactive. Pour s’en convaincre, il suffit de rechercher sur Twitter le tag #rstats ou encore de s’inscrire au flux rss de CRANberries. Ce dernier liste toutes les nouvelles extensions et toutes les mises en jour : il y a environ une nouvelle extension et une vingtaine de mises à jour chaque jour. Chaque fois qu’une nouvelle API est publiée ou qu’un nouveau service apparait, il existe une personne dans le monde qui se met à écrire une extension pour profiter de cette API ou de ce service dans R. Il est ainsi possible d’utiliser les cartes de Google Maps, les outils Google Visualization, ou encore d’utiliser Amazon Web Services pour faire du calcul distribué en toute simplicité.

Grâce à cette incroyable communauté, utiliser R c’est contracter l’assurance d’être toujours à la pointe de la technologie et d’être aidé chaque fois que vous en aurez besoin.

Bon mais il y a des défauts, non ?

Je le concède, R a quelques défauts, et ces défauts proviennent de ses propres forces. Le premier défaut auquel je pense, c’est que R est gratuit et par conséquent, il n’y a aucun support commercial. Si un jour, vous avez un problème vous ne pourrez pas rouspéter au téléphone en disant que vous avez payé !

Autre défaut, les différentes fonctions et les différents packages manquent souvent de cohérence du fait de la grande diversité des contributeurs. Par exemple, il n’y a pas de convention d’écriture claire : parfois il faut mettre des points, d’autres fois des majuscules ; parfois les noms commencent par une minuscule, d’autre fois par une majuscule. Cela peut paraître anodin, mais cela accroît le temps d’apprentissage et cela conduit souvent à des erreurs agaçantes.

Enfin, il est parfois difficile de s’y retrouver parmi toutes ces fonctions et toutes ces extensions. Obtenir de l’aide sur internet n’est pas toujours évident. Dans un autre article je reviendrai sur ce problème et présenterai les différentes sources d’information sur R.

Pour conclure

Si vous ne possédez pas R, essayez-le ! Que vous soyez convaincu ou non par mon argumentaire, cela ne vous coûtera rien du tout !

Cette entrée a été publiée dans R. Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>