#Introduction à R
R a été conçu par et pour les statisticiens : il excelle dans la manipulation de tableaux de données, la modélisation et la production de graphiques de qualité publication. Là où un tableur cache le calcul dans des cellules, R l'écrit dans un script rejouable : c'est cette reproductibilité qui fait tout son intérêt en analyse de données.
#Prérequis et objectifs du module
- Prérequis : aucun prérequis en programmation. Savoir organiser des fichiers et lire un tableau suffit ; les notions statistiques utilisées (moyenne, médiane, nuage de points) sont rappelées au moment voulu.
- Manipuler des données tabulaires : importer, filtrer, transformer, résumer.
- Visualiser : construire des graphiques ggplot2 lisibles et honnêtes.
- Modéliser : ajuster et interpréter une régression, évaluer un modèle supervisé.
- Industrialiser : projets reproductibles avec renv et Quarto.
#Pourquoi R ?
R reste l'outil de référence en biostatistique, en économétrie et dans la recherche académique. Python domine l'industrie du machine learning, mais R garde deux avantages structurels : ses structures de données pensées pour les tableaux statistiques (le data frame est natif), et ggplot2, l'implémentation la plus aboutie de la grammaire des graphiques.
#L'environnement de travail
L'installation standard comporte trois briques : R (le langage, à installer en premier), RStudio (l'éditeur, qui rend R confortable), et Quarto (le système de documents, intégré à RStudio). La section Prise en main détaille l'installation pas à pas.
1# Installation des packages utilisés dans ce module (une seule fois)2install.packages("tidyverse")3 4# Chargement à chaque session5library(tidyverse)#Les bases du langage : tout est vecteur
En R, l'atome n'est pas le nombre mais le vecteur : 1:5 est un vecteur de cinq entiers, et x * 2 multiplie chaque élément sans boucle. Cette vectorisation change la manière d'écrire : on décrit l'opération sur l'ensemble, pas sur chaque élément.
1# Création de vecteurs2x <- c(1, 2, 3, 4, 5) # c() combine3y <- 1:5 # séquence entière, équivalent4 5# Opérations vectorisées : appliquées élément par élément6x * 2 # 2 4 6 8 107x + y # 2 4 6 8 10 (somme deux à deux)8x > 2 # FALSE FALSE TRUE TRUE TRUE : un vecteur de booléens9 10x[x > 2] # 3 4 5 : extraction par masque booléen11 12# Résumés usuels13sum(x) # 1514mean(x) # 3Deux remarques de vocabulaire : <- est l'opérateur d'affectation (on peut aussi utiliser =, mais <- est la convention) ; [ extrait par positions ou par masque booléen, x[x > 2] renvoie 3 4 5.
#Le data frame : la structure centrale
Le data frame est un tableau dont chaque colonne a son propre type : texte dans nom, entier dans age, texte dans ville. C'est la structure que toutes les sections suivantes manipulent.
1# Créer un data frame2df <- data.frame(3 nom = c("Alice", "Bob", "Charlie"),4 age = c(25, 30, 35),5 ville = c("Nice", "Lyon", "Marseille")6)7 8df9# nom age ville10# 1 Alice 25 Nice11# 2 Bob 30 Lyon12# 3 Charlie 35 Marseille13 14# Accès aux colonnes avec $#Manipulation de données : dplyr en avant-goût
Le package dplyr fournit des verbes qui se chaînent avec le pipe. Le pipe |> (natif depuis R 4.1) passe le résultat de gauche comme premier argument de la fonction de droite : la pipeline se lit de haut en bas comme une recette.
1library(dplyr)2 3df |>4 filter(age > 25) |> # garder les lignes5 select(nom, age) |> # garder les colonnes6 mutate(age_dix_ans = age + 10) |> # créer une colonne7 arrange(desc(age)) # trierSur notre tableau : la ligne Alice (25 ans) est filtrée, puis le résultat affiche Bob (30, 40) et Charlie (35, 45), Charlie en tête. La section Manipulation de données détaille chaque verbe avec des données réelles.
#Un premier graphique ggplot2
1library(ggplot2)2 3ggplot(data = mtcars, aes(x = wt, y = mpg)) +4 geom_point() +5 geom_smooth(method = "lm") +6 labs(title = "Consommation selon le poids",7 x = "Poids (1000 livres)",8 y = "Miles par gallon") +9 theme_minimal()Trois idées à retenir maintenant, développées dans la section Visualisation : on part des données et des esthétiques (aes relie une variable à un axe), on ajoute des couches (geom_point pour les points, geom_smooth pour la tendance), et chaque élément visuel (titre, axes, thème) est une couche négociable.
#Parcours du module
- Prise en main : installer, configurer un projet, premiers scripts.
- Manipulation de données : importer, nettoyer, transformer avec dplyr puis data.table.
- Visualisation : la grammaire de ggplot2, du nuage de points au facettage.
- Modèles statistiques : régression linéaire, diagnostics, évaluation avec tidymodels.
- Écosystème : renv, Quarto, packaging, tests : rendre une analyse reproductible.