Appendice A Langage R

R (Ihaka et Gentleman 1996, R Development Core Team 2020, mais voyez aussi http://www.r-project.org) est un fantastique environnement de travail pour réaliser des analyses statistiques, des modélisations et bien d’autres calculs scientifiques. Il est basé sur un langage à la fois puissant et fonctionnellement très riche : le langage R, lui-même basé sur le langage S. Historiquement, S-PLUS était un logiciel commercial d’un environnement statistique autour du langage S ayant un certain succès à la fin du vingtième siècle. R est sa contrepartie “Open Source”, c’est-à-dire, gratuit et libre. Au fil du temps, la communauté ouverte de développeurs autour de R s’est agrandie, tandis que S-PLUS n’a pas reçu le même niveau d’attention. Aujourd’hui, R est un langage dominant, alors que S (et S-PLUS) ont pratiquement totalement disparu.

La richesse de R est telle qu’elle vous permet d’effectuer tout type d’analyse ou de graphique statistique, sans jamais être bridé par les possibilités du logiciel. Lorsque vous voulez réaliser une analyse ou un graphique qui n’existe pas encore dans R, son langage vous permet de le programmer vous-même. La licence “Open Source” de R vous autorise ensuite à redistribuer librement votre nouvelle fonction à tout le monde. C’est cette approche “Open source”, autant que la puissance de son langage qui font le succès de R. Ainsi, au fil du temps, la quasi-totalité des méthodes statistiques a été progressivement (re)développée sous R par une large communauté d’utilisateurs devenus programmeurs. De plus, les nouvelles techniques statistiques sont maintenant souvent d’abord développées en R (ou en Python, surtout dans le domaine du “machine learning”/“deep learning”). Donc, R et Python sont deux langages informatiques incontournables pour la science des données. R est plus indiqué pour le biologiste, car il nécessite un peu moins de connaissances en programmation pure et dure pour pouvoir l’utiliser (par exemple, le nombre de types d’objets de base différents est moins large, ce qui en facilite le choix pour un utilisateur qui ne connaît pas la différence entre list, tuple, dictionnary en Python, pour le même usage, il utilisera toujours le type list en R).

Aujourd’hui, plusieurs dizaines de milliers de packages additionnels sont disponibles (un package R est une extension contenant de nouvelles fonctions, voir http://cran.r-project.org) pour étendre les fonctionnalités de votre environnement de travail R. Les facilités offertes pour de nouveaux développements sont tel que bien des statisticiens qui créent de nouvelles techniques, le font maintenant directement dans R. Cela signifie que R est en développement constant, et est à jour dans de nombreux domaines de la statistique, même ceux en pleine évolution, comme par exemple le “data mining”, le “machine learning”, ou encore, la bio-informatique (à ce sujet, voir le site Bioconductor).

Une telle richesse fonctionnelle a, par contre, un revers. Étant donné que R contient des dizaines de milliers de fonctions différentes, réparties dans des centaines de packages, et que son langage est puissant au point de s’adapter à toutes les situations rencontrées en statistiques, son apprentissage est relativement abrupt. Avant d’être réellement productif dans R, il faut assimiler un grand nombre de notions, parfois assez pointues. Le travail nécessaire peut rebuter plus d’un débutant, qui s’orientera alors vers un logiciel moins riche, mais plus simple à aborder, et qui donnera plus rapidement quelques résultats. À moyen et long terme, c’est un mauvais choix : soit cet utilisateur décide délibérément de s’en tenir aux fonctions limitées de son logiciel “facile”, soit il faudra quand même un jour ou l’autre qu’il apprenne à utiliser un vrai logiciel statistique professionnel, tel que R… alors dans ce cas, pourquoi ne pas commencer tout de suite ?

La meilleure façon d’étudier R, c’est en l’utilisant. Les ingrédients pour votre progression sont :

  1. Votre motivation, principalement poussée par les différentes questions que vous vous posez et qui pourraient être résolues en utilisant R.
  2. Votre capacité à l’autoapprentissage pour arriver à résoudre ce problème. Il est naturellement beaucoup plus facile et rapide de demander à un spécialiste… mais qu’apprendrez-vous de cette façon ? Pas grand-chose ! C’est pour cette raison que ces notes ne vous présenteront que les bases… et vous apprendront surtout à en découvrir plus par vous-même. Ne sous-estimez jamais votre potentiel à résoudre les problèmes par vous-même. Non seulement vous en tirerez une immense satisfaction, mais également, vous apprendrez à résoudre les problèmes futurs plus rapidement ! Ainsi, même si vous avez l’impression de perdre votre temps en tournant en rond, la persévérance est toujours payante au long terme.
  3. La documentation et les livres. Utilisez-les et abusez-en ! Il existe des milliers de pages sous la forme d’aide en ligne, de foires aux questions (FAQ), de cours en lignes, et d’autres ouvrages dédiés à R. Considérez-les comme votre principale source d’inspiration.
  4. Seulement si vous avez essayé de résoudre le problème par vous-même et que vous avez consulté toute la documentation disponible, sans obtenir la solution, alors n’hésitez pas à consulter un expert. Une solution existe probablement. Vous pouvez poser la question à des collègues ou des amis, mais je vous conseille d’utiliser surtout l’excellente liste de diffusion R-Help (voyez http://cran.r-project.org). Cette liste de diffusion est très active. Elle est fréquentée par la plupart des experts mondiaux du langage R, et ces experts vous répondent généralement en l’espace de quelques heures !

Bien que cette approche de l’autoapprentissage soit certainement la plus efficace, il est quand même très difficile d’aborder un système aussi complexe que R tout seul depuis le début. Ce cours introductif est là pour vous mettre le pied à l’étrier, en vous familiarisant avec les notions clefs à comprendre pour pouvoir comprendre et décrypter l’abondante littérature sur R.