- Maitriser l’environnement de RStudio.
- S’initier à la grammaire de base du langage R.
- Définir et manipuler différents types d’objets avec des opérateurs.
- Importer et explorer un jeu de données.
- Comprendre le fonctionnement et l’utilisation de fonctions élémentaires et de leurs arguments.
- Utilisation de la base de données hdv2003 (INSEE) du package questionr
Langage et interface de programmation libres et gratuits pour l’analyse statistique et graphique (etc.).
Multiplateforme : Windows, Mac, Linux.
Très fort pour les graphiques et visualisations de toutes sortes.
Communauté très active donc développement constant = rapidité de l’implémentation de nouvelles méthodes (non disponibles dans les logiciels commerciaux).
Pour tous les types d’analyses (modèles linéaires, multi-niveaux, analyses factorielles, équation structurelle, simulations, psychométrie, économétrie, génomique…).
Utilisation de scripts assure la reproductibilité des analyses.
Très efficace pour la création de présentations et de rapports (Rmarkdown
, knitr
, LaTeX
).
Excellente intégration avec de nombreux systèmes de bases de données, autres langages et outils comme Colab ou Jupyter notebook (en association avec Python).
Plus un langage de programmation qu’un logiciel.
Ne manipule pas directement les données comme SPSS ou excel, les fichiers de données sont des objets en mémoire.
L’affichage des résultats est assez minimaliste.
Prolifération des fonctions (packages) peut alourdir l’apprentissage.
Développement rapide fait que la documentation laisse parfois à désirer.
Contient généralement de l’aide pour toutes les fonctions mais pas toujours facile à comprendre.
Comme pour tout language de programmation, un “rien” peut faire en sorte que le code plante.
Bref, complexe mais TRÈS puissant!
Choisir ses combats (on n’apprend pas R, on apprend ce que l’on a à faire dans R)
Savoir trouver des réponses à ses questions
Installe généralement en plus un IDE, Integrated Development Environment: éditeur de script - environnement beaucoup plus convivial qui facilite le travail (gestion des fichiers, objets et commandes, historique de fonctions, autocomplétion,…).
L’IDE le plus utilisé est RStudio (mais il y en a d’autres comme Tinn-R).
Les commandes et fonctions sont les mêmes pour R et RStudio.
Télécharger et installer R de base - choisir son système d’exploitation et suivre les étapes.
Télécharger et installer RStudio (ou autre interface) – Choisir la version gratuite et son système d’exploitation.
Télécharger et installer (“charger”) des packages dans RStudio.
update.packages
). RStudio utilisera par défaut la version la plus récente sur le poste (peut se faire manuellement). L’ancienne version peut être désinstallée. Il est recommandé de mettre à jour sa version R et RStudio annuellement.Un package est un module (ou extension, librairie, bibliothèque) qui contient un ensemble de fonctions (souvent liées à une méthode ou un domaine particulier).
À l’installation, R vient avec un ensemble de fonctions de base {base} et de modules par défaut (built in packages).
Des packages composés de fonctions spécialisées sont constamment développés par la communauté.
On en trouve plus de 15 000 sur le site officiel de R CRAN. D’autres se trouvent aussi ailleurs (Github, …).
Les packages doivent être téléchargés une seule fois, mais chargés à chaque session.
Il y a toujours plusieurs façons d’arriver au même résultat -> normal et nécessaire de se limiter à certaines fonctions.
Les modules sont généralement évalués par les pairs - Journal of Statistical Software – le choix doit se faire avec précautions.
Comment les trouver et les choisir? En cherchant sur Google! En s’informant dans son domaine et en vérifiant si les packages ont déjà été utilisés dans des publications.
Certains packages ont des façons spécifiques de fonctionner. Ils utilisent une syntaxe et des formats qui se distinguent de la syntaxe commune de R.
install.packages("tidyverse")
va télécharger toutes les extensions constituants le cœur de tidyverse. La fonction library(tidyverse) les chargera (Certains autres modules doivent être chargés individuellement) :
The R Graph Gallery
Geocomputation with R
Données géospatiales et cartographie avec R
Spatial Data Science with applications in R
CRAN Task View: Analysis of Spatial Data
Making Maps with R github
Éditeur de script:
Console:
Onglet History du quadrant haut-droite: consulter et relancer commandes.
Autocomplétion: Tab dans le nom d’une fonction. Aussi pour noms d’objets.
Nombreux autres raccourcis sous les onglets View, Edit et Code
Créer un projet: menu File puis sélectionner New project.
Un projet permet d’organiser son travail et de faciliter l’accès à un ensemble de fichiers (données, scripts, documentation, graphiques…) organisés dans des dossiers/sous-dossiers.
Un projet RStudio est associé à un répertoire de travail R: on peut créer un nouveau dossier ou créer un projet à partir d’un dossier existant - Working Directory.
R va créer dans ce dossier un fichier .Rproj. Ce fichier sera ensuite automatiquement chargé dans RStudio à l’ouverture entrainant la définition du dossier de travail, le chargement du fichier .Rdata (image contenant les objets), le chargement de l’historique et l’ouverture des scripts ouverts à la dernière session.
Plusieurs projets peuvent être ouverts en même temps.
Les options générales et de projets de RStudio peuvent être modifiées sous Tools > Global Options… et Tools > Project options.
Même si l’on ne travaille pas dans le cadre d’un “projet”, R demandera à la fermeture si l’on veut enregistrer ce qui se trouve dans son environnement. Si oui, les objets seront enregistrés dans un fichier .Rdata, le script dans un fichier .R et les commandes dans un fichier .Rhistory. À la prochaine ouverture R ouvrira comme au dernier enregistrement.
R est avant tout un langage de programmation orienté objet.
Développé à partir du langage S par Ross Ihaka et Robert Gentleman au cours des années ‘90.
Permet de programmer ses propres fonctions et packages.
Est-ce qu’il faut vraiment apprendre ça?
Particularités à savoir:
Sensible à la casse (attention minuscules/majuscules).
Sensible aux accents (éviter d’utiliser).
Sensible aux signes de ponctuation: point pour décimales, virgule pour adressage.
Non sensible aux espaces.
Attention aux guillemets (pour texte, simple ou double), crochets, accolades, parenthèses.
Une ligne par commande, ou séparer plusieurs commandes par ;.
Importance fondamentale de documenter son code avec # # ceci est un commentaire (peut ajouter section en suivant avec au moins 4 ----)
Contrairement aux autres logiciels, l’analyse se fait par une série d’étapes avec des résultats intermédiaires stockés dans des objets.
À la base, on peut utiliser R comme une grosse calculatrice:
## [1] 4
WOW!
## [1] 15.66667
**<-**
dans lequel je stocke le résultat du calcul## [1] 15.66667
Un objet est donc une boite dans laquelle on peut placer un chiffre, un mot, un jeu de données d’un million de répondants, une fonction, un graphique…
Les noms d’objets:
Peuvent contenir des chiffres, lettres et caractères _ et .
Doivent commencer par une lettre, pas un chiffre.
Ne pas utiliser d’accents ni d’espace.
En principe il faut utiliser des noms significatifs, en pratique on utilise souvent des noms minimalistes pour faciliter la réutilisation.
Certains noms courts sont réservés (max, min, c, q, t, …).
Permettent d’effectuer des tâches prédéfinies comme des analyses, graphiques, calculs, … (tableaux, régressions, histogrammes, …)
On contrôle le comportement de la fonction en paramétrant ses arguments
On peut imbriquer les fonctions les unes dans les autres avec des parenthèses.
c()
: concaténer (ou combiner)age <- c(12, 15, 20, 35, 40)
# age = nom de notre objet
# c = fonction de concaténation
# () = premier argument de notre fonction, ie nos données
mean()
:## [1] 24.4
## [1] 24.4
Chaque fonction possède une liste plus ou moins longue d’arguments (paramètres ou options) plus ou moins complexes permettant de paramétrer le fonctionnement de la fonction.
Certains arguments ont une valeur par défaut. Si ces valeurs nous conviennent, pas besoin de les indiquer.
Si l’argument n’a pas de valeur par défaut, FAUT le renseigner.
Pour modifier la valeur d’un argument, on le nomme et change sa valeur à la suite d’un =.
La liste d’arguments respecte un ordre. Si on modifie chaque argument dans l’ordre, on peut omettre le nom des arguments. Les arguments peuvent donc être nommés ou non nommés.
Le premier argument, toujours les données (on ne le nomme généralement pas x=)
Comment savoir quels sont les arguments d’une fonction ? Taper Help(NomFonction)
ou ?NomFonction
.
age <- c(12, 15, 20, NA) # Je créé un vecteur composé de chiffres et une valeur manquante
mean(age) # Je passe mon vecteur dans à la fonction mean
## [1] NA
## [1] 15.66667
Comme tout logiciel d’analyse quantitative, R permet de créer et de manipuler plusieurs types de données. On parle en général du mode d’un objet. Les types de base sont:
aa <- 123 # Numérique
bb <- "soleil" # Chaîne de caractères
cc <- TRUE # Logique (T/F)
dd <- NA # Logique
ee <- "123" # ???
Pour vérifier le type de données : mode(NomObjet)
attributes(NomObjet)
.Pour vérifier le type d’objet: class(NomObjet)
c()
.length()
, qui correspond à son nombre de valeurs.aa <- c(5, 23, 89, NA) # vecteur numérique et une valeur manquante
bb <- c("bleu", "blanc", "rouge") # vecteur textuel
cc <- c(TRUE, FALSE, FALSE, TRUE) # vecteur booléen
## [1] 33.29370 25.39062 20.76125
Type particulier de vecteur dont la structure est destinée aux variables qualitatives, que les valeurs soient numériques ou textuelles – s’apparente aux labels de variables catégorielles de SPSS.
On crée un facteur avec la fonction factor()
(ou ordered()
pour les variables ordinales).
À la création d’un facteur, les valeurs sont regroupées en modalités (levels) fixes, il ne peut y en avoir d’autres.
On peut toutefois modifier les niveaux permis et leur ordre.
Les facteurs ont un attribut levels
qui les distinguent des vecteurs réguliers:
levels
de la fonction factor()
permet de modifier les modalités crées par défaut.Labels
permet de modifier les libellés de niveaux.Créer une variable de type facteur (fonction factor()) avec 5 valeurs de 2 niveaux)
Par défaut, les valeurs fournies lors de la création du facteur sont utilisées pour fixer les modalités (niveaux) de la variable en ordre alphabétique
## [1] "Homme" "Femme"
L’objet est un facteur avec 2 niveaux dont les modalités sont stoquées sous forme textuelle, mais les valeurs individuelles sont stoquées comme integer.
## Factor w/ 2 levels "Homme","Femme": 1 1 2 1
## [1] "integer"
Lors de l’importation de données, tout dépendant de la fonction utilisée pour importer, les variables qualitatives seront soit importées sous forme de vecteur textuel ou de facteur.
Les fonctions d’importation des packages tidyverse (readr, readxl ou haven) importent les variables qualitatives sous forme textuelle, mais la majorité des fonctions d’importation les convertissent en facteur.
Il est toujours possible de convertir en facteur le format d’une variable numérique/textuelle avec la fonction as.factor
(ou l’inverse avec as.numeric
, as.character
, mais la procédure est plus risquée).
À noter:
ncol()
et des lignes - nrow()
, donc 2 dimensions - dim()
.data.frame()
- les variables textuelles seront automatiquement converties en facteur (sinon il faut modifier l’argument - stringsAsFactors = FALSE)
)# On crée trois vecteurs et on en fait un tableau avec trois variables avec la fonciton data.frame
age <- c(45,65,22,38,54,31,29,44,56,67)
poids <- c(150,125,210,175,110,180,130,155,190,120)
sexe <- c("H","F","F","H","H","F","F","H","F","H")
bd <- data.frame(age, poids, sexe)
## age poids sexe
## 1 45 150 H
## 2 65 125 F
## 3 22 210 F
## 4 38 175 H
## 5 54 110 H
## 6 31 180 F
## 7 29 130 F
## 8 44 155 H
## 9 56 190 F
## 10 67 120 H
La fonction length()
renverra le nombre de colonnes et names()
leur nom.
On le crée rarement à la main, on importe généralement un fichier de données.
Il existe plusieurs fonctions/packages pour importer des fichiers de divers formats. Chaque fonction a ses particularités qui auront un impact sur la conversion des données (par exemple le traitement des valeurs manquantes, des étiquettes de variables, des dates, des décimales, …).
Après l’importation, il est essentiel d’inspecter ses données de façon détaillée
Joseph Larmarange et als, 2020, Analyse-R Introduction à l’analyse d’enquêtes avec R et RStudio
Julien Barnier, 2020, Introduction à R et au tidyverse
Rebaudo, 2019, Se former au logiciel R : initiation et perfectionnement
Jean-Herman Guay, Statistiques en sciences humaines avec R + Site pédagogique pour les usagers francophones de R
CRAN Task Views (ressources spécialisées selon les “disciplines”)
Beaucoup de ressources intéressantes sur Github. Ex: Exploratory Data Analysis in R
Poser des questions: (https://stackoverflow.com/) …
John Fox, 2005, “The R Commander: A Basic-Statistics Graphical User Interface to R”, Journal of Statistical Software, Volume 14, Issue 9.
Application Bluesky : R + interface graphique similaire à SPSS