1.3 Le langage R
Dans cette partie nous allons présenter plus en détail le langage R. Nous allons ainsi voir son origine, ses forces, ainsi que ces faiblesses.
De S à R, un langage au nom peu original
Dans les années 70 des ingénieurs du AT&T Bell laboratories (un centre de recherche américain) inventérent le langage S (S comme Statistiques), qui devait servir à effectuer facilement des calculs statistiques et mathématiques. Ce langage restera confidentiel jusqu'aux années 90, principalement car il s'agissait d'un projet commercial, vendu sous licence payante aux entreprises souhaitant l'utiliser (la version payante s'appelait alors S+ et existe toujours de nos jours, bien que très peu de gens ne n'utilisent encore).
A partir du milieu des années 90, une équipe du département de statistiques de l'université d'Aukland décida de créer une nouvelle version de S, appelée R. Contrairement à S, R devenait gratuit, et tout le monde devait pouvoir contribuer pour améliorer le langage. C'est toujours le cas aujourd'hui. R est alors devenu un langage open source, publié sous la licence GNU (General public licence). Ce passage en open source a permis à R de devenir rapidement plutôt populaire, en particulier chez les universitaires, ainsi que dans la communauté des statisticiens et analystes de données.
R est en effet spécialement conçu pour travailler avec les données, et il offre de nombreuses possibilités d'écrire des programmes rapidement et efficacement pour cela. Il permet par exemple de facilement manipuler des matrices ou de dessiner de jolis graphiques en quelques lignes de code, là où d'autres langages demanderaient des centaines de lignes pour un même résultat !
Depuis quelques années et l'engouement pour le "big data", R est devenu un langage qui à encore gagné en popularité, alors qu'il restait peu utilisé en dehors des universités avant. De langage obscure connu de seulements quelques académiciens, il est devenu un langage indispensable pour toute personne souhaitant manipuler des données. La plupart des data scientistes ou personnes qui travaillent avec des données apprennent ce langage, et les besoins pour ces métiers ne font que croitre avec l'augmentation de la masse de données à notre disposition. Ainsi R à encore de belles années devant lui...
Les avantages de R
Nous pouvons lister rapidement les principaux avantages de R :
- R est gratuit, au contraire de nombreux outils et logiciels d'analyses statistiques, qui sont eux payants (comme Stata ou SAS). C'est pour cette raison que de nombreuses universités enseignent maintenant R à leurs étudiants, au lieu de payer de couteuses licences pour ces logiciels.
- R dispose d'une large communauté, il est donc facile de trouver rapidement de l'aide quand on rencontre un problème. Il est toujours appréciable de savoir qu'il existe quelqu'un de plus avancé que nous qui pourra nous aider en cas de difficulté.
- R dispose de nombreux packages qui offrent des outils adaptés à toutes sortes de besoins. Il en existe pour dessiner de magnifiques graphiques, pour traiter des données temporelles, pour la finance, pour la biologie etc. Cela évite de devoir re-inventer la roue à chaque fois, et de se baser sur le travail de la communauté. Si vous voulez faire quelque chose avec R, il existe probablement un package pour vous y aider !
- R est relativement facile à utiliseret à apprendre, car il est pensé pour l'utilisateur. On peut par exemple changer facilement le contenu d'une variable ou ne pas s'occuper de la gestion de la mémoire, le langage s'en occupe tout seul. Ce n'est pas le cas d'autres langages comme C ou Java, qui donnent plus de travail et de responsabilité au progammeur.
- On peut transformer son code R en application web, pour permettre a d'autres personnes de visualiser nos résultats, grace au package RShiny. Voici sur le site officiel de Rshiny quelques exemples de ce que l'on peut faire avec ce package.
- R permet de faire de très beau graphiques avec la librairie ggplot2. Vous pouvez réaliser avec des graphiques complexes, tout en les personalisant très facilement.
- On peut facilement créer des rapports avec Rmarkdown, ce qui est très utile pour collaborer avec d'autres personnes et leur permettre de comprendre ce que l'on a fait avec nos données.
Bien entendu R n'est pas le seul langage à avoir ces avantages. Un des concurent les plus sérieux de R est le langage python, qui est lui aussi très performant sur tous ces points. La différence principale est probablement que R reste plus utilisé dans les universités et dispose de plus d'outils pour les traitements statistiques avancés, ce qui explique son succés dans les universités ou chez les data scientistes qui veulent tester des choses nouvelles.
Quelques inconvéniants de R
Un langage a rarement uniquement des avantages sans inconvéniants. R ne fait pas exception, et voici quelques-unes de ses limites :
- R est un vrai langage de programmation, ce qui veut dire qu'il permet beaucoup de choses. Mais aussi qu'il demande un investissement de départ un peu plus important que pour utiliser un logiciel comme Sass. Si vous voulez faire des choses simples, utiliser un tel logiciel peut être plus intéressant, même si vous serez rapidement limité en possibilités.
- La documentation de R n'est pas toujours très facile à lire, et elle n'existe qu'en anglais. Il est ainsi parfois difficile de comprendre exactement comment fonctionne tel élément avancé du langage. Cela dit, de nombreux progrès sont faits par les créateurs du langages sur ce point, en particulier ces dernières années.
- R est un langage relativement "lent". En effet il est conçu pour faire facile à lire et à écrire pour les humains. Hors cela va souvent de paire avec un langage un peu moins rapide pour effectuer les calculs, du moins par rapport à des langages spécialement conçus pour la performance. Nénanmoins R reste la plupart du temps très efficace : il faut effectuer des millions de calculs en même temps pour en voir les limites. Dans 99% des cas, R sera largement assez rapide pour faire ce que vous lui demandez.