
Le 21 mai dernier, j’ai eu le plaisir d’intervenir en conférence plénière aux Rencontres R à Mons, en Belgique.

Lors de cette conférence plénière, j’ai parlé d’un sujet qui me tient à cœur : comment enseigner et apprendre le langage R de façon simple, structurée et efficace, notamment pour les utilisateurs débutants.
Dans cet article, je partage ici une synthèse de mon intervention, et vous propose une feuille de route pour les débutants : par où commencer, quelles compétences acquérir en priorité, et comment progresser pas à pas pour devenir autonome dans l’analyse de données avec R.
Je suis consultante et formatrice indépendante depuis sept ans, spécialisée en méthodologie clinique, biostatistiques et utilisation du logiciel R.
Avant de devenir indépendante, j’ai travaillé comme biostatisticienne, notamment à l’IRSN (Institut de Radioprotection et de Sûreté Nucléaire) ou j’analysais, avec R, des données issues de laboratoires ou d’études de terrain.
J’ai découvert R il y a plus de vingt ans, lors de mon master 2 « Méthodologie et statistiques en recherche biomédicale », dirigé par Bruno Falissard.
Depuis huit ans, j’anime le blog Statistiques et logiciel R, qui compte aujourd’hui plus de 200 articles, et plus de 20 000 personnes abonnées à sa newsletter.
Je propose des formations courtes au langage R, d’une durée d’une à trois journées, conçues spécifiquement pour des professionnels non-développeurs et généralement non spécialistes de la data : chercheurs, chefs de projets, techniciens, étudiants, etc.
Cela inclut notamment une formation de prise en main de R, destinée à acquérir rapidement les bases, ainsi qu’une formation R pour la data analyse, conçue pour s’initier à une utilisation efficace et structurée de R dans le cadre de l’analyse de données.
Je propose également des modules thématiques d’une journée pour approfondir certaines compétences : manipulation de données avec le tidyverse, création de graphiques avec ggplot2, rédaction de rapports dynamiques avec Quarto, entre autres.
À ce jour, ces formations ont permis à plus de 500 personnes de se familiariser efficacement avec R.
Beaucoup de mes stagiaires débutants ne se tournent pas vers R par choix : ils l’adoptent parce que c’est l’outil utilisé dans leur structure, dans le cadre d’une collaboration, ou parce qu’ils doivent traiter un volume important de données.
Leur objectif principal est souvent de pouvoir réutiliser des scripts d’analyse transmis par des collègues, en les adaptant à leurs propres données et variables, notamment pour produire des analyses statistiques ou des graphiques.
Ces besoins, en apparence simples, impliquent pourtant de maîtriser un socle minimal de connaissances en R et de savoir faire face à certains obstacles courants au fil de l’apprentissage.
La première étape pour bien débuter avec R consiste à s’approprier l’environnement de RStudio. Il est essentiel de comprendre le rôle des différentes fenêtres :

Vous trouverez des informations complémentaires dans mon article « Présentation du logiciel R et de son environnement R Studio »
L’approche la plus simple et la plus efficace consiste à créer un projet R. Il s’agit simplement d’associer R Studio à un dossier de travail. Puis dans un second temps de lui donner une architecture simple. Personnellement, j’ai l’habitude de créer 5 sous-dossiers :

Travailler en projet R, vous permet de simplifier vos chemins d’accès vers les fichiers, en cas d’importation et d’exportation, car ils pourront s’écrire relativement au projet R. Cela permet également de ne pas mélanger les objets créés. Ce projet R peut être zippé et partagé.
Vous trouverez des informations complémentaires dans mon article “7 étapes pour organiser son travail sous R”
Le minimum vital à connaitre me semble être :
<-,==pour dire “égal” et != pour dire différents)c()$ pour manipuler une variable, et les crochets pour accéder aux éléments.Tous les éléments dont vous aurez besoin pour commencer sont répertoriés dans l’aide-mémoire base, publié par posit.
La syntaxe tidyverse, est une façon d’écrire du code R, qui est très intuitive, et plus accessible aux débutants que la syntaxe de base du langage R. Cette syntaxe introduit un nouvel opérateur (%>%) que l’on appelle le pipe (et que l’on peut traduire par “et puis”)
Voici un exemple :
SP %>%
filter(gender == "female") %>%
select(gender,math.score) Cela signifie que l’on prend les données SP (c’est une table de données, autrement dit un data frame), et puis on filtre les données pour ne garder que les lignes qui correspondent aux femmes, et puis on sélectionne les colonnes pour ne garder que les variables genderet math.score.
Le package dplyr, quant à lui, permet de réaliser les principales manipulations de base des tables de données, grâce à ces 4 grands verbes :
select() : pour sélectionner des colonnesfilter() : pour filtrer des lignesmutate() : pour créer des nouvelles variablessummarise() : pour créer des tables agrégées
Vous trouverez plus d’informations sur l’utilisation du package dplyr pour manipuler vos données dans mon article Manipulations de données avec le package dplyr

Une fois les manipulations simples de tables maîtrisées, il me semble nécessaire de s’initier à deux manipulations plus avancées. La première est l’assemblage de deux tables, notamment par jointure. Pour cela, les fonctions full_join(), inner_join(), et left_join() du package dplyr sont très performantes.
Il est également intéressant de s’intéresser à l’assemblage des tables par les lignes avec les fonctions union(), intersect() et setdif()
Vous trouverez plus d’informations sur les jointures dans mon article Fusionner deux tableaux de données par leurs colonnes : les jointures
Et vous trouverez plus d’informations concernant les assemblages de tables par les lignes dans mon article Fusionner les lignes de deux data frame
La seconde manipulation avancée est de passer d’un format wide des données (une colonne par variable – très pratique pour consulter une table de données ou réaliser une description), à un format long (variables rassembler en 2 colonnes : l’une contenant le nom, l’autre la valeur), et inversement. Pour cela les fonction pivot_longer() et pivot_longer() du package tidyr sont particulièrement utiles.

Il existe plusieurs listes de fonctions que l’on peut trouver sur internet, et qui comportent des fonctions statistiques, par exemple celle-ci, rédigée par Julien Chiquet.
Il existe plusieurs listes de fonctions que l’on peut trouver sur internet, et qui comportent des fonctions statistiques, par exemple celle-ci, rédigé par Julien Chiquet.
J’ai moi même publié un petit aide-mémoire, que vous pourrez trouver en cliquant sur le lien précédent.
La grammaire des graphiques utilisée par le package ggplot2 repose sur un principe simple : un graphique est une construction par couches, à partir de données. On part d’un jeu de données, on définit les esthétiques (ce qu’on veut représenter sur les axes, les couleurs, les tailles…), puis on ajoute des couches : des points (geom_point()), des barres (geom_bar()), des lignes (geom_line()), etc.
L’idée est de décrire ce que l’on veut voir, plutôt que de choisir un type de graphique dans une liste. Ce fonctionnement rend ggplot2 très flexible et puissant, une fois qu’on comprend cette logique par étapes.
Par exemple :
library(ggplot2)
ggplot(iris, aes(x=Sepal.Length, y= Petal.Length, color=Species))+
geom_point()+
geom_smooth(method=lm) 
Ce code signifie « Je veux représenter les données iris, en mettant Sepal.Length sur l’axe x, Petal.Length sur l’axe y, et en colorant les points selon l’espèce (Species). Je veux afficher les points, et ajouter une droite de régression linéaire pour chaque espèce. »
Il existe cependant une petite astuce pour faciliter l’apprentissage de ggplot2. Cela consiste à employer le package esquisse.

Ce package permet d’accéder à une interface graphique dans laquelle les variables sont sous forme d’étiquettes, que l’on peut placer dans des boites (une pour la variable x, une pour la variable y, une autre pour la couleur par exemple) ; le graphique se crée alors instantanément. Il est ensuite possible de l’exporter vers un format powerpoint, dans lequel tous les éléments sont cliquables. Il est également possible de visualiser et de récupérer le code ggplot2 correspondant, ce qui permet un apprentissage pratico pratique de sa grammaire.
Vous trouverez plus d’informations concernant le package esquisse dans mon article Découvrez l’addin Esquisse !
Et si vous souhaitez vous initier à ggplot2, vous trouverez plus d’informations dans cet article :
Introduction à la visualisation sous R avec le package ggplot2
Les étapes précédentes me semblent être le socle minimum de connaissances R à avoir pour être capable de récupérer des scripts, et de les modifier pour les adapter à vos données et vos variables.
Une fois ces 7 étapes maîtrisées, je vous conseille de vous initier à Quarto.

Il s’agit de scripts, avec une extension.qmd, qui utilisent des balises Markdown simplifiées (par exemple, un dièse pour réaliser un titre de niveau 1, deux dièses pour un titre de niveau 2, deux étoiles de chaque côté d’un mot pour le passer en gras, etc…).
Ces scripts quarto permettent de générer des rapports d’analyses automatisés (il suffit de cliquer sur un bouton), et dynamiques (si le jeu de données est modifié, les analyses et le rapport sont modifiés en conséquence), qui comprennent du code R, les résultats du code R, des titres, une table des matières, une bibliographie etc…
Cela vous évitera de faire des copier-coller de vos commandes et de vos résultats dans un document word, et vous permettra de ne plus perdre le lien entre un code et son résultat (par exemple le code qui génère un graphique), et également de partager plus facilement votre travail.
Vous trouverez plus d’information sur l’utilisation de quarto dans mes articles suivants :
Selon les analyses que vous serez amené à réaliser, la maîtrise des packages ludridate, stringr et forcats pourrait vous être très utile.

Le package lubridate est dédié à la gestion des données de date et d’heures (parsing, récupération des éléments (date, années, mois, jour, heure, etc.. ))
Vous trouverez plus d’informations dans mon article Gérer les données de date et d’heure avec le package lubridate
Le package stringr quant à lui, contient des fonctions de manipulation des chaînes de caractères (découper, assembler, compter etc…).
De son côté, le package forcats contient des fonctions de manipulation des modalités (levels) des variables qualitatives (factor), comme par exemple, le regroupement de modalités, la modification de l’ordre des modalités (indispensable pour modifier l’ordre d’apparition dans les graphs, ou les tables descriptives). Là encore, il existe une astuce pour utiliser ces fonctions et apprendre à les utiliser plus facilement, il s’agit du package questionr. Comme esquisse, ce package permet d’accéder à une interface graphique dans laquelle les élements sont manipulables. Le code correspondant à la manipulation est également fourni.
Par défaut, tous les messages de sortie de R sont en rouge, ce qui inquiète beaucoup les débutants. Pour vous tranquilliser, vous pouvez modifier leur couleur en modifiant le thème.
Pour cela, allez dans le menu Tools > > Global Options > Appereance > puis Theme.
Lorsque le code employé comporte plusieurs niveaux de parenthèses, il n’est pas toujours évident de les repérer. pour vous aider, vous pouvez employer des parenthèses de couleurs.
Si elles ne sont pas présentes par défaut, allez dans Tools > Global Options > Code > Display > Syntaxe > Use Rainbow Parentheses
Il n’y a pas vraiment de moyen d’y échapper, mais vous pourrez facilement les corriger en faisant attention :
. ou _ dans les noms des fonctions et des objetsL’importation des fichiers csv peut être probématique, mais la bonne nouvelle, c’est que c’est très facile de s’en sortir !

Vous devez savoir qu’il existe une seule extension .csv mais plusieurs sous formats, selon le caractère qui est employé pour séparer les colonnes (généralement ; ou ,) et pour marquer la décimale (. ou ,) . Il existe aussi plusieurs fonctions d’importation qui correspondent à ces différents sous formats. Et donc, au final, une multitude de situations dans lesquelles les importations échouent, car la fonction employée ne correspond pas au sous format réel des données.
Pour éviter tout problème, je vous recommande d’employer le premier outil d’importation, et de recopier, dans votre script, la ligne de commande qui s’affiche dans la console, et de supprimer, dans le chemin d’accès, tout ce qui se trouve avant “data”.

Les messages d’erreur sont difficilement compréhensibles, et autant vous le dire tout de suite, cela perdure même lorsqu’on n’est plus débutant ! Pour essayer de comprendre à quel niveau se situe le problème, le jeu consiste à repérer un mot clé dans le message d’erreur.
Mais une solution plus efficace, et plus récente, consiste à copier-coller le code qui génère l’erreur, accompagné du message, dans un LLM (chatGPT par exemple).
Tout d’abord, définissez vos objectifs. Que voulez-vous faire avec R ? Analyser des données ou développer un outil, une méthode d’analyse, un package, une application shiny ? Les conseils précédents ne concernent que l’analyse de données. Si vous souhaitez développer sous R, alors le socle de connaissances minimales nécessaire sera sans doute un peu différent, ou pour le moins, il faudra le compléter.
Ensuite, si vous le pouvez, suivez une formation, cela vous fera gagner beaucoup de temps. Et si vous pouvez bénéficier d’une formation personnalisée, c’est encore mieux.
Si vous le souhaitez, vous pourrez retrouver mes offres de formation en cliquant ici.
Je vous recommande également de vous constituer une base de connaissance avec l’application Notion. Ne prenez pas ce conseil à la légère, c’est sûrement le plus important !

Pour apprendre à utiliser efficacement cette application, je vous recommande la formation gratuite “Notion Facile” de Shubham Sharma :

Apprendre R, c’est tout à fait possible, même sans appétence particulière pour le code. En structurant les apprentissages, en rassurant les utilisateurs et en s’appuyant sur des outils modernes comme Quarto ou ChatGPT, on peut progresser rapidement et gagner en autonomie.

Enregistrez vous pour recevoir gratuitement mes fiches « aide mémoire » (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.
6 réponses
Contenu très bien structuré et très intéressant. Cela complète et enrichi ma formation Master dans le langage R.
Un grand merci à vous.
Super utile… 🙂
Merci beaucoup pour cette synthèse bien structurée. Vos conseils sont d’une grande utilité.
Chère claire,
Infiniment merci pour cette synthèse bien structurée et d’une utilité indéniable.
Contenu très bien organisé qui permet une bonne et meilleur comprehensiin. Merci pour ce document d’initiation au logiciel RStudio.
Merci pour ce document utile