Langage R et RStudio : importer, manipuler et analyser vos données quand on débute
- Thématique
- Data & business intelligence
- Mis à jour
- Lecture
- 13 min
- Formation
- Apprendre la Programmation R & RStudio : Cours Complet
L'essentiel en 30 secondes
- Le langage R est un langage de programmation libre et gratuit, conçu pour l'analyse statistique et la visualisation de données.
- RStudio est l'environnement de travail le plus utilisé pour écrire du R : il réunit un éditeur de scripts, une console, la liste des objets en mémoire et un panneau de graphiques.
- Les structures de base de R sont le vecteur, le facteur, la matrice, la liste et le data frame, ce dernier étant l'équivalent d'un tableau de données.
- Un fichier CSV s'importe avec read.csv(), ou read.csv2() pour les fichiers au format français (point-virgule et virgule décimale).
- Les fonctions summary(), str() et head() donnent en quelques secondes un aperçu complet d'un jeu de données avant toute analyse.
Sommaire de l'article
- Qu’est-ce que le langage R ?
- Pourquoi apprendre R ? Les usages concrets
- Comment débuter en R avec RStudio : les étapes
- Importer un CSV dans R et explorer les données
- Statistiques avec R : les fonctions essentielles
- Graphiques R : de base R à ggplot2
- Les erreurs fréquentes en R (et comment les éviter)
- R, Excel ou Python : quel outil pour analyser vos données ?
- Comment apprendre le langage R efficacement ?
- En résumé
Le langage R est un langage de programmation libre et gratuit, spécialisé dans l’analyse statistique et la visualisation de données. Avec RStudio, son environnement de travail le plus répandu, il permet d’importer un fichier, de le nettoyer, de calculer des statistiques et de produire des graphiques, le tout dans un script que l’on peut rejouer à l’identique sur de nouvelles données.
Ce guide s’adresse aux débutants complets, étudiants, chercheurs et professionnels qui veulent dépasser les limites du tableur. Vous y verrez comment installer R et RStudio, manipuler les principales structures de données, importer un CSV, explorer un jeu de données et réaliser vos premiers graphiques et statistiques.
Qu’est-ce que le langage R ?
R est un langage interprété, créé pour le calcul statistique et les graphiques, et distribué gratuitement par le CRAN (Comprehensive R Archive Network). Il fonctionne sous Windows, macOS et Linux. Sa richesse vient de ses packages : des milliers d’extensions gratuites couvrent l’import de données, la manipulation de tableaux, les graphiques, les tests statistiques, les modèles et les rapports.
R est très utilisé dans la recherche, la biostatistique, l’épidémiologie, l’économétrie, les études marketing et, plus largement, partout où l’on doit analyser des données avec rigueur et documenter la démarche.
Sa particularité par rapport à un tableur : tout est écrit. Chaque import, chaque filtre, chaque calcul figure dans un script. Le travail est donc traçable, reproductible et réutilisable : il suffit de relancer le script sur le fichier du mois suivant.
Pourquoi apprendre R ? Les usages concrets
- Statistiques avec R : moyennes, écarts-types, tests d’hypothèses, corrélations et régressions sont disponibles nativement.
- Graphiques R de qualité : histogrammes, boîtes à moustaches, nuages de points, et avec le package ggplot2 des visualisations prêtes à publier.
- Automatisation : un traitement que vous faisiez à la main dans un tableur devient un script exécutable en une seconde.
- Volumes : R manipule sans difficulté des fichiers de plusieurs centaines de milliers de lignes, limités surtout par la mémoire de l’ordinateur.
- Reproductibilité : un collègue, un relecteur ou vous-même dans six mois pouvez relancer exactement la même analyse.
- Rapports : R Markdown et Quarto permettent de générer des documents qui mêlent texte, code, tableaux et graphiques.
Comment débuter en R avec RStudio : les étapes
Étape 1 — Installer R puis RStudio
- Téléchargez R depuis le site du CRAN (cran.r-project.org) en choisissant votre système, puis installez-le avec les options par défaut.
- Téléchargez ensuite RStudio Desktop (version gratuite) sur le site de son éditeur, Posit, et installez-le.
- Lancez RStudio : il détecte automatiquement R.
L’ordre compte : RStudio a besoin de R pour fonctionner, pas l’inverse.
Étape 2 — Découvrir l’interface de RStudio
L’écran est divisé en quatre panneaux :
- Source (en haut à gauche) : l’éditeur de scripts, où vous écrivez et enregistrez votre code (fichiers .R) ;
- Console (en bas à gauche) : l’endroit où le code s’exécute et où s’affichent les résultats ;
- Environment / History (en haut à droite) : les objets créés en mémoire et l’historique des commandes ;
- Files / Plots / Packages / Help (en bas à droite) : les fichiers du projet, les graphiques, les packages installés et l’aide.
Créez un nouveau script avec File > New File > R Script. Pour exécuter la ligne où se trouve le curseur, ou la sélection, appuyez sur Ctrl+Entrée (Cmd+Entrée sur Mac).
Notre conseil : travaillez dès le début dans un projet RStudio (File > New Project). Le dossier du projet devient le répertoire de travail, et les chemins vers vos fichiers restent simples et portables.
Étape 3 — Utiliser R comme une calculatrice et créer des objets
2 + 3 * 4 # 14
10 / 3 # 3.333333
10 %/% 3 # division entière : 3
10 %% 3 # reste : 1
2^10 # 1024
sqrt(144) # 12
prix_ht <- 250
tva <- 0.20
prix_ttc <- prix_ht * (1 + tva)
prix_ttc # 300
L’opérateur <- affecte une valeur à un objet (le raccourci Alt+- l’insère dans RStudio). Les objets apparaissent aussitôt dans le panneau Environment. Le signe # introduit un commentaire.
Étape 4 — Manipuler des vecteurs
Le vecteur est la structure de base de R : une suite de valeurs de même type, créée avec c().
ventes <- c(120, 95, 180, 210, 75)
mois <- c("jan", "fev", "mar", "avr", "mai")
ventes[1] # premier élément : 120 (l'indexation commence à 1)
ventes[2:4] # éléments 2 à 4
ventes[-1] # tous sauf le premier
ventes[ventes > 100] # filtrage logique : 120 180 210
ventes * 1.1 # opération appliquée à chaque élément
sum(ventes) # 680
mean(ventes) # 136
length(ventes) # 5
names(ventes) <- mois
ventes["mar"] # 180
Les opérations sont vectorisées : ventes * 1.1 multiplie chaque élément sans boucle. C’est l’un des grands atouts de R.
Étape 5 — Comprendre les types de données
R distingue plusieurs types : numérique (numeric), entier (integer), texte (character), logique (logical, TRUE ou FALSE). Deux fonctions permettent de les identifier : class(), qui renvoie la classe de l’objet, et typeof(), qui renvoie son type de stockage interne.
class(3.14) # "numeric"
typeof(5L) # "integer"
class("R") # "character"
class(TRUE) # "logical"
is.numeric("12") # FALSE
as.numeric("12") # 12
as.character(2026) # "2026"
as.numeric("douze") # NA, avec un avertissement
La famille is.*() teste un type, la famille as.*() convertit. Un vecteur ne peut contenir qu’un seul type : c(1, "a", TRUE) convertit tout en texte.
Étape 6 — Utiliser les facteurs pour les variables catégorielles
Un facteur représente une variable qualitative avec un nombre limité de modalités (sexe, région, niveau de satisfaction).
satisfaction <- factor(
c("moyen", "bon", "bon", "faible", "bon"),
levels = c("faible", "moyen", "bon")
)
levels(satisfaction) # "faible" "moyen" "bon"
table(satisfaction) # effectifs par modalité
Définir l’ordre des niveaux avec levels garantit que les tableaux et les graphiques respecteront l’ordre logique, et non l’ordre alphabétique.
Étape 7 — Découvrir matrices, tableaux et listes
# Matrice : 2 dimensions, un seul type
m <- matrix(1:6, nrow = 2)
dim(m) # 2 3
m[2, 3] # ligne 2, colonne 3 : 6
t(m) # transposée
# Tableau (array) : 3 dimensions ou plus
a <- array(1:24, dim = c(2, 3, 4))
a[1, 2, 3]
# Liste : éléments de types différents
projet <- list(nom = "Étude clients", annee = 2026, villes = c("Lyon", "Lille"))
projet$villes
projet[["annee"]]
La liste est la structure la plus souple de R : de nombreuses fonctions (notamment les modèles statistiques) renvoient leurs résultats sous forme de liste.
Étape 8 — Travailler avec les data frames
Le data frame est la structure clé pour l’analyse : un tableau où chaque colonne est un vecteur (d’un type donné) et chaque ligne une observation.
clients <- data.frame(
nom = c("Martin", "Durand", "Petit", "Moreau"),
age = c(34, 51, 28, 45),
ville = c("Lyon", "Paris", "Lyon", "Nantes"),
achats = c(1250, 830, 420, 2100)
)
clients$age # une colonne
clients[clients$ville == "Lyon", ] # lignes filtrées
clients[, c("nom", "achats")] # colonnes choisies
clients[order(-clients$achats), ] # tri décroissant
clients$panier <- clients$achats / 4 # nouvelle colonne
nrow(clients); ncol(clients)
La syntaxe df[lignes, colonnes] est centrale : une condition à gauche de la virgule filtre les lignes, une liste de noms à droite choisit les colonnes.
Importer un CSV dans R et explorer les données
Importer le fichier
Placez le fichier dans le dossier de votre projet, puis :
# CSV "international" : séparateur virgule, décimale point
ventes <- read.csv("ventes.csv", encoding = "UTF-8")
# CSV "à la française" : séparateur point-virgule, décimale virgule
ventes <- read.csv2("ventes.csv", encoding = "UTF-8")
C’est l’erreur la plus fréquente des débutants : un CSV exporté depuis un Excel en français utilise généralement le point-virgule. Avec read.csv(), toutes les données atterrissent dans une seule colonne. Avec read.csv2(), tout rentre dans l’ordre.
Vous pouvez aussi passer par le panneau Environment > Import Dataset, qui affiche un aperçu et génère le code d’import : pratique pour trouver les bons paramètres, puis copier ce code dans votre script.
Installer et charger des packages
Les packages étendent R. On les installe une fois, on les charge à chaque session :
install.packages("readxl") # une seule fois
library(readxl) # à chaque session
clients_xl <- read_excel("clients.xlsx", sheet = 1)
Les packages les plus utiles pour débuter : readr et readxl (import), dplyr (manipulation), ggplot2 (graphiques). Les trois premiers et ggplot2 font partie de l’ensemble tidyverse, que l’on peut installer d’un coup avec install.packages("tidyverse").
Explorer le jeu de données
Avant toute analyse, prenez connaissance des données. Pour s’entraîner, R contient des jeux de données intégrés comme iris ou mtcars :
head(iris) # 6 premières lignes
str(iris) # structure : types et aperçu de chaque colonne
summary(iris) # statistiques par colonne
dim(iris) # nombre de lignes et de colonnes
names(iris) # noms des colonnes
table(iris$Species) # effectifs par espèce
View(iris) # ouvre le tableau dans RStudio
summary() donne, pour chaque colonne numérique, le minimum, les quartiles, la médiane, la moyenne et le maximum, et pour chaque facteur, les effectifs par modalité. En une commande, vous repérez les valeurs aberrantes et les données manquantes.
Manipuler les données avec dplyr
La syntaxe df[lignes, colonnes] suffit pour débuter, mais devient vite difficile à relire. Le package dplyr propose des verbes explicites, enchaînés avec l’opérateur pipe |> (natif depuis R 4.1) ou %>% :
library(dplyr)
iris |>
filter(Sepal.Length > 5) |>
mutate(ratio = Petal.Length / Petal.Width) |>
group_by(Species) |>
summarise(
nombre = n(),
ratio_moyen = mean(ratio),
longueur_max = max(Sepal.Length)
) |>
arrange(desc(ratio_moyen))
Chaque verbe correspond à une action : filter() garde des lignes, select() choisit des colonnes, mutate() crée ou modifie une colonne, group_by() et summarise() agrègent, arrange() trie. Le code se lit de haut en bas comme une recette, ce qui facilite beaucoup la relecture par un collègue.
Organiser son travail pour qu’il reste reproductible
Quelques habitudes font la différence entre un script jetable et une analyse réutilisable :
- un projet RStudio par étude, avec des sous-dossiers
donnees,scriptsetresultats; - des chemins relatifs (
"donnees/ventes.csv") plutôt que des chemins absolus propres à votre ordinateur, et jamais desetwd()en début de script ; - les
library()regroupés en haut du script, pour voir d’un coup d’œil les packages nécessaires ; - des commentaires qui expliquent le pourquoi, pas le quoi : « on exclut les commandes test du mois de mars » plutôt que « filtre » ;
- un redémarrage régulier de la session (Session > Restart R) pour vérifier que le script fonctionne de bout en bout, sans dépendre d’objets créés à la main dans la console.
Pour partager des résultats avec des personnes qui ne lisent pas le code, R Markdown et Quarto produisent des rapports HTML, Word ou PDF. Si votre besoin est plutôt un tableau de bord interactif alimenté en continu, un outil comme Looker Studio ou Power BI sera plus adapté pour la diffusion.
Statistiques avec R : les fonctions essentielles
| Besoin | Fonction R | Exemple |
|---|---|---|
| Moyenne, médiane | mean(), median() | mean(iris$Sepal.Length) |
| Dispersion | sd(), var(), range() | sd(iris$Sepal.Length) |
| Quantiles | quantile() | quantile(x, c(0.1, 0.9)) |
| Effectifs et proportions | table(), prop.table() | prop.table(table(iris$Species)) |
| Moyenne par groupe | aggregate(), tapply() | tapply(iris$Sepal.Length, iris$Species, mean) |
| Corrélation | cor() | cor(iris$Petal.Length, iris$Petal.Width) |
| Test de Student | t.test() | t.test(x ~ groupe, data = df) |
| Régression linéaire | lm() | summary(lm(Petal.Width ~ Petal.Length, data = iris)) |
| Valeurs manquantes | is.na(), na.rm = TRUE | mean(x, na.rm = TRUE) |
Exemple complet : la moyenne de la longueur des sépales par espèce.
aggregate(Sepal.Length ~ Species, data = iris, FUN = mean)
Graphiques R : de base R à ggplot2
R intègre des fonctions graphiques immédiates, idéales pour explorer :
hist(iris$Sepal.Length, main = "Longueur des sépales", xlab = "cm", col = "steelblue")
boxplot(Sepal.Length ~ Species, data = iris, main = "Longueur par espèce")
plot(iris$Petal.Length, iris$Petal.Width, xlab = "Longueur", ylab = "Largeur")
barplot(table(iris$Species))
Pour des graphiques plus soignés et plus faciles à personnaliser, ggplot2 construit un graphique couche par couche :
library(ggplot2)
ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) +
geom_point() +
labs(title = "Pétales : longueur et largeur", x = "Longueur (cm)", y = "Largeur (cm)") +
theme_minimal()
Les graphiques s’affichent dans le panneau Plots, d’où le bouton Export permet de les enregistrer en image ou en PDF. En script, ggsave("graphique.png", width = 8, height = 5) enregistre le dernier graphique ggplot2.
Les erreurs fréquentes en R (et comment les éviter)
| Message ou symptôme | Cause | Solution |
|---|---|---|
Error: object 'x' not found | Objet non créé ou faute de frappe (R distingue majuscules et minuscules) | Vérifier le nom et exécuter la ligne qui crée l’objet |
could not find function | Package non chargé | Ajouter library(nom_du_package) |
cannot open file ... No such file or directory | Fichier hors du répertoire de travail | Utiliser un projet RStudio, vérifier getwd() |
| Toutes les données dans une seule colonne | CSV à point-virgule lu avec read.csv() | Utiliser read.csv2() |
| Les nombres sont lus comme du texte | Virgule décimale ou espaces | read.csv2() ou conversion avec as.numeric() |
mean() renvoie NA | Valeurs manquantes | na.rm = TRUE |
| Modalités dans le désordre sur un graphique | Facteur trié par ordre alphabétique | Définir levels dans factor() |
Autre réflexe utile : l’aide est intégrée. Tapez ?mean ou help(read.csv) dans la console pour afficher la documentation, les arguments et des exemples.
R, Excel ou Python : quel outil pour analyser vos données ?
| Critère | Excel | R | Python (Pandas) |
|---|---|---|---|
| Prise en main | Immédiate | Quelques heures pour les bases | Quelques heures pour les bases |
| Statistiques avancées | Limitées (utilitaire d’analyse) | Très complètes, cœur du langage | Complètes via des bibliothèques |
| Graphiques | Rapides mais peu personnalisables | Très riches (ggplot2) | Riches (Matplotlib, Seaborn) |
| Reproductibilité | Faible (manipulations manuelles) | Totale (scripts) | Totale (scripts) |
| Usage dominant | Bureautique, gestion | Statistiques, recherche, études | Data science, automatisation, production |
| Coût | Licence Microsoft 365 | Gratuit | Gratuit |
Si vous restez dans l’écosystème Microsoft, l’automatisation du tableur passe aussi par Power Query et Power Pivot dans Excel ou par les macros VBA. Et si votre objectif est de diffuser des tableaux de bord interactifs plutôt que des analyses statistiques, notre feuille de route pour apprendre Power BI sera plus adaptée.
Comment apprendre le langage R efficacement ?
Voici l’ordre que nous recommandons pour progresser sans se décourager :
- Installation et prise en main (1 heure) : R, RStudio, projets, scripts, calculs simples.
- Structures de données (2 à 3 heures) : vecteurs, types, facteurs, matrices, listes, data frames.
- Import et exploration : CSV, Excel,
str(),summary(), filtres et nouvelles colonnes. - Statistiques descriptives et graphiques : moyennes par groupe, dispersion, histogrammes, boîtes à moustaches.
- Aller plus loin : dplyr et ggplot2, tests statistiques, régressions, puis modèles prédictifs.
Pour suivre ce parcours avec des fichiers fournis, la formation vidéo R et RStudio d’EspritAcadémique dure 2 h 20, ne demande aucun prérequis en programmation ni en statistiques, et couvre notamment :
- l’installation de R et de RStudio, puis l’usage de R comme calculatrice ;
- les vecteurs : indexation, sélection, opérations et calculs ;
- les types de données, les fonctions class() et typeof(), les conversions et les facteurs ;
- les tableaux, matrices, data frames et listes ;
- l’installation de packages, l’import d’un CSV, l’exploration d’un jeu de données, la création de colonnes et les premiers graphiques avec un aperçu statistique.
Une fois ces bases acquises, les modèles prédictifs sont une suite logique : notre article sur le machine learning et le deep learning présente les notions à connaître.
En résumé
Le langage R, associé à RStudio, est un outil gratuit et puissant pour analyser des données de façon rigoureuse et reproductible. Commencez par les vecteurs et les data frames, apprenez à importer un CSV avec la bonne fonction, explorez systématiquement avec str() et summary(), puis produisez vos statistiques et vos graphiques. Quelques heures suffisent pour les bases ; la pratique sur vos propres données fera le reste.
Questions fréquentes
Quelle est la différence entre R et RStudio ?
R est le langage et le moteur qui exécute les calculs. RStudio est un environnement de développement qui rend R plus confortable : éditeur avec coloration et autocomplétion, console, visualisation des objets, gestion des packages et des graphiques. Il faut installer R d'abord, puis RStudio, qui détecte automatiquement l'installation de R.
Le langage R est-il gratuit ?
Oui. R est un logiciel libre distribué gratuitement par le CRAN, le réseau officiel qui héberge aussi des milliers de packages complémentaires. RStudio Desktop, édité par Posit, existe également en version gratuite. Vous pouvez donc apprendre et utiliser R à titre professionnel sans licence, sur Windows, macOS et Linux.
R ou Python : lequel apprendre pour l'analyse de données ?
Les deux sont excellents. R est particulièrement apprécié pour les statistiques, la recherche, la biostatistique et les graphiques de qualité publication. Python est plus polyvalent, avec des usages qui vont du web à l'automatisation et au machine learning en production. Si votre travail est surtout statistique, R est un très bon choix ; si vous visez l'ingénierie des données, Python est plus répandu.
Comment importer un fichier Excel dans R ?
Installez le package readxl avec install.packages("readxl"), chargez-le avec library(readxl), puis utilisez read_excel("fichier.xlsx", sheet = 1). Vous pouvez aussi passer par le menu de RStudio : panneau Environment, bouton Import Dataset, puis From Excel, qui génère le code d'import correspondant.
Combien de temps faut-il pour apprendre R ?
Quelques heures suffisent pour installer R, manipuler des vecteurs et des data frames, importer un CSV et produire des statistiques descriptives. Comptez quelques semaines de pratique régulière pour être à l'aise avec la manipulation de données et les graphiques, puis davantage pour les modèles statistiques avancés, selon votre niveau en statistiques.
Pourquoi R affiche NA au lieu d'un résultat ?
NA signifie valeur manquante. Dès qu'un vecteur contient un NA, les fonctions comme mean() ou sum() renvoient NA par défaut, par prudence. Ajoutez l'argument na.rm = TRUE pour ignorer les valeurs manquantes, et comptez-les au préalable avec sum(is.na(x)) pour savoir combien de données vous écartez.