Introduction au langage R

UMR8504 Géographie-Cités

Transversalité Données et protocoles dans les Humanités Numériques

Hugues Pecout

Sommaire

1. Pourquoi utiliser R ?

  • Logiciels vs langages
  • Langages vs langages
  • Présentation de R puis Rstudio
  • Installation



3. Mise en pratique

  • Le projet Rstudio
  • Démonstration
  • Les notebooks
  • Exercice pratique

2. Introduction au langage

  • Les bases du langage
  • Les objet R
  • R-base et packages
  • Aide et documentation


Logiciels vs langages

SAS, SPAD, SPSS… et R !


Il existe de nombreux logiciels d’analyse statistique. Mais depuis le début des années 2000, le langage R gagne en importance dans ce domaine et s’impose progressivement comme une référence, au même titre que les trois principaux logiciels d’analyse de données qui dominent le marché.



Plusieurs aspects peuvent nous laisser penser que de nombreux utilisateurs de logiciels statistiques devraient progressivement converger vers R…

Limites des logiciels propriétaires


  • Des prix de licences parfois onéreux
  • Des problèmes d’intéropérabilité avec les différents OS
  • Des problèmes d’intéropérabilité en matière de données
  • Un développement contrôlé qui induit des limites
  • Des spécificités et une polyvalence limitées

Prix licence SPSS Base edition


Intéropérabilité des principaux logiciels :

Logiciel/Système Windows MacOS Linux BSD Autres Unix
SAS oui terminé oui non oui
SPAD oui non non non non
SPSS oui oui non non non
Stata oui oui oui non non

Autant d’obstacles pour…



  • L’utilisation personnelle
  • Le travail collaboratif
  • Le travail interdisciplinaire
  • La reproductibilité
  • La formation… 😏


C’est pour cela que l’on préfère R…
Mais pourquoi ce langage et pas un autre ?

Frères ennemis


Deux langages de programmation utilisés pour le traitement et l’analyse des données en SHS, et très souvent comparés pour leurs fonctionnalités semblables



L’utilisation de R ou de Python dépend surtout de :
Qui suis-je ? Qu’est-ce que je veux faire ? Avec qui ?

Deux communautés différentes


  • Documentation riche et structurée
  • Communauté accessible et inclusive
  • Discipline : analyse de données
  • Métiers : recherche & développement

  • Plus d’utilisateur·rices
  • Communauté plus spécialisé en informatique
  • Discipline : science des données
  • Métiers : informaticien, développeur

Différents points forts

 

R a autant de cerveau…

  • Plus facile à prendre en main (Rstudio)
  • Analyse statistique
  • Représentation graphique
  • Literate programming (notebook)


→ Spécialisé dans l’analyse statistique
→ Pour utilisateu·rices moins avancés en progr.

…que Python a du muscle !

  • Plus puissant et généraliste
  • Gestion de données volumineuses
  • Web scraping et TAL
  • Développement de logiciel


→ Spécialisé dans la science de données
→ Pour utilisateu·rices avancés en progr.

Le langage ?


En 2008, au MIT, des chercheurs se rassemblent pour faire le point sur les outils disponibles pour le calcul scientifique et statistique. Principal constat, la communauté est éclatée :

  • des développeurs utilisateurs de C ou de python,
  • des statisticiens utilisateurs de R,
  • et des utilisateurs de solutions commerciales ayant leur propre langage (SAS, Matlab…)

il fallait un langage prenant tous les avantages de chaque langage et rajoutant un aspect de plus en plus pointé du doigt : la parallélisation massive (rapidité de calcul)… Le langage Julia est né !


Cependant, le langage Julia ne s’est toujours pas imposé dans la communauté SHS, où R et Python semble toujours les langages les plus utilisés pour l’analyse de données…

Historique


R se base sur le langage de programmation S, créé en 1988.
L’objectif était de créer le meilleur environnement d’analyse statistique.

  • 1992: R. Gentleman et R. Ihaka démarrent le développement (projet de recherche)
  • 1993: Première version binaire de R publiée sur Statlib
  • 1995: R est distribué en tant que logiciel open source, sous licence GPL2
  • 1997: Création du R core group. Création du CRAN (par K. Jornik et F. Leisch)
  • 1999: Création du site web de R (r-project.org) . Première réunion physique de la R core team
  • 2000: R 1.0.0 est publié. John Chambers (créateur du langage S), rejoint la R Core team
  • 2001: Création de R News (qui deviendra R Journal)
  • 2003: Création de la R Foundation
  • 2004: Première conférence UseR! (Vienne)
  • 2004: R 2.0.0 est publié
  • 2009: Première édition du R Journal
  • 2013: R 3.0.0 est plublié
  • 2015: Création du R Consortium (avec la participation de la R Foundation)
  • 2020: R 4.0.0 est plublié

Libre et multi-plateforme



  • R est un logiciel/langage libre (open source)


  • R fait partie de la liste des paquets GNU GPLv3


  • R est multi-plateforme


Logiciel/Sytsème Windows MacOS Linux BSD Autres Unix
R oui oui oui oui oui

Une structure modulaire


R propose 2996 fonctions statistiques et graphiques standard (primitives)

Sur ce socle commun peut s’ajouter de nombreux packages, mis à disposition sur le Comprehensive R Archive Network (CRAN). Ex :

  • FactoMineR - analyse multivariée des données
  • quanteda - analyse textuelle
  • igraph - analyse de réseau
  • sf - manipulation de données spatiales vectorielles
  • terra - manipulation de données spatiales RASTER
  • mapsf - Cartographie thématique
  • shiny - applicacions web interactives


R a une structure modulaire qui offre toute une gamme d’applications possibles. Son expansion n’est limitée que par les contributions !

Des fonctionnalités croissantes…


Nombre de packages disponibles sur le CRAN

… Pour un langage polyvalent

Les packages permettent d’opérer sur l’ensemble de la chaîne de traitement, de la collecte des données à la valorisation des résultats (diaporama, rapport statistique, site web…).

Cette polyvalence permet à R de compléter (et de concurrencer) toute une série de logiciels existants

R est-il fiable ?


Peut-on avoir confiance en un langage Open Source ?


  • Financement d’acteurs économiques (R Consortium)
  • Communauté impliquée et importante
  • Le fonctionnement d’un logiciel open source est vérifiable
  • Tous les logiciels ont des failles, mais…


L’information circule vite dans les communautés des logiciels OS !

Soutiens financiers importants


R est le résultat de 30 années de recherche & développement. Aujourd’hui, plusieurs acteurs économiques importants financent le développement de R : Microsoft, Google, Oracle, Esri

Grande communauté d’utilisateurs

Et d’entreprises

Les points forts



  • Un seul environnement pour toutes les étapes de traitement
  • Un seul environnement pour traiter les différents types de données
  • Un seul environnement pour réaliser différents types d’analyses
  • Mise en place de chaînes de traitement optimisées et uniques
  • Traitements et analyses facilement archivés et partagés
  • Il suffit d’un ordinateur pour les reproduire….


Seulement possible avec un langage Open Source spécialisé dans l’analyse statistique

Des points faibles ?



  • R est un langage de programmation 😬
  • Son apprentissage est long, parfois douloureux…
  • L’interface de base est très rudimentaire
  • La majorité des ressources sont en anglais


Mais …

Rstudio ?


RStudio, qui se nomme désormais Posit, est une entreprise qui développe et publie des logiciels et des services basés sur le langage R. C’est l’acteur privé le plus important de la communauté R. Rstudio est à l’origine de nombreux packages de référence. Ex :

La majorité des packages de Rstudio sont regroupés dans un package “parapluie” : tidyverse

Posit propose également un Environnement de Développement Intégré qui facilite énormément la pratique du langage R : l’IDE Rstudio

L’interface de R

Interface de R sur Windows

Pas d’interface sur Linux (terminal)



L’IDE Rstudio facilite l’apprentissage de R et son utilisation

IDE Rstudio

IDE Rstudio

L’IDE Rstudio, c’est aussi :


  • La création de projet
  • Des fonctionnalités clic-bouton
  • Un système d’Auto-complétion
  • De nombreux raccourcis clavier
  • Certains packages pré-installés
  • Le système de publication Quarto intégré

Parce que c’est simple, complet, en constante évolution et développé par le principale acteur de la communauté, utilisez l’IDE RStudio pour vous lancer !

Installation

Installer R


L’installation de R et de l’IDE Rstudio se fait comme n’importe quel autre logiciel.
Connectez-vous au CRAN pour télécharger R.


Installer l’IDE Rstudio

Téléchargez la version ‘Desktop’ sur le site de Rstudio

Ou Rstudio en ligne

L’IR* Huma-Num met à disposition une instance Rstudio : https://r-tools.huma-num.fr/



  • Aucune installation
  • Portabilité maximale
  • Puissance et continuité de calcul



⚠️ L’installation de certains packages 
se fait à la demande

Comment accéder au service ?

Envoyer un courriel à cogrid@huma-num.fr, en précisant les éléments suivants :

  • Nom, Prénom
  • Laboratoire de rattachement
  • Statut
  • Cadre/s d’utilisation (programme de recherche, thèse…)
  • Description courte (< 5 lignes) du cadre d’utilisation
  • Type de compte demandé : R Studio Web ou R Studio Web + Shiny

C’est parti !

Lancez Rstudio (pas R) pour commencer

Premiers pas

Écrivez du code (ou formules mathématiques) dans la console :


Appuyez sur “Entrée” pour l’exécuter :

Les bases du langage R

Une super calculatrice


Le langage R offre les mêmes fonctionnalités qu’une calculatrice.


Nom Opérateurs arithmétiques Exemple Résultat
Addition + 5 + 3 8
Soustraction - 5 - 1 4
Multiplication * 5*5 25
Division / 5/5 1
Puissance ^ 5^5 3125
Modulo %% 5 %% 5 0
Quotient Décimal %/% 5 %/% 5 1


Exemples appliqués :

3 + 5
[1] 8


(3+4) * 5^3 / 10
[1] 87.5


(3.2 + 4.1) * 5.9^3 / 10.002
[1] 149.8967

Une super calculatrice


Plusieurs types d’opérateurs sont disponibles :


Conditions Opérateurs relationnels Exemple Résultat
plus petit que < 5 < 5 FALSE
plus grand que > 5 > 5 FALSE
plus petit ou égal à <= 5 <= 5 TRUE
plus grand ou égal à >= 5 >= 5 TRUE
égal à == 5 == 5 TRUE
différent de != 5 != 5 FALSE
présent dans %in% 5 %in% 1:5 TRUE


x égale à y ?

5 == 5
[1] TRUE


x différent de y ?

5 != 5
[1] FALSE


x présent dans y ?

c(1,7,3,2) %in% c(7,4,5,3)
[1] FALSE  TRUE  TRUE FALSE



Condition Opérateurs logiques
différent de !
et &
ou I
ou exclusif xor()
valeur manquante is.na()
valeur nulle is.null()
vrai isTRUE()
faux isFALSE()


Valeur manquante ?

is.na(NA)
[1] TRUE


Différent de ‘NA’ ?

!is.na(13)
[1] TRUE


Contrôle à deux conditions

!is.na(13) & 2 == 2
[1] TRUE

Qui propose des fonctions avancées

Des milliers de fonctions pour manipuler, analyser et représenter ses données. Une fonction contient une série de commandes (code) qui effectuent une tâche prédéfinie. Elle prend des informations (arguments) en entrée et renvoie un résultat. Les fonctions s’utilisent toujours de la même façon : nom_fonction()


→ Fonction round() pour arrondir un nombre

round(x = 12.33453)
[1] 12


→ Fonction nchar() pour calculer un nombre de caractères

nchar(x = "UMR8504 Géographie-Cités")
[1] 24


→ Fonction strsplit() pour fractionner une chaine de caractère

strsplit(x = "PARIS,CRIA,EGO,TERMS", split = ",")
[[1]]
[1] "PARIS" "CRIA"  "EGO"   "TERMS"


→ Fonction plot() pour la représentation graphique

plot(x = 1:20, y = 11:30)


Le plus souvent, plusieurs arguments doivent être renseignés pour utiliser une fonction.

# Affichage graphique
plot(x = 1:20, 
     y = 11:30, 
     type = "p",
     pch = 15, 
     cex = 2, 
     col= "deepskyblue3",
     main = "Mon premier plot avec R",
     cex.main = 2,
     col.main = "darkgoldenrod4",
     col.axis = "red4",
     xlab = "Ma première variable", 
     ylab = "Ma seconde variable")

Pour connaître tous les arguments d’une fonction : ?nom_fonction().

?round()


Les fonctions peuvent être :

  • mises à disposition par le R base (fonctions primitives ou standards),
  • mises à disposition par un package (extension du langage R base),
  • développées en local par les tous utilisateur.rices.

objet <- data

R = Programmation Orientée Objet ?


Tout ce que l’on crée dans R sont des objets. Mais contrairement au langage Python, il ne s’agit pas d’un langage de POO.


La POO est un paradigme de programmation basé sur le concept d’objets, qui peuvent contenir des données et métadonnées (attributs), et qui sont associés à des procédures, souvent appelées méthodes.

Il est néanmoins possible de faire de la POO avec R

Créer un objet


Pour créer un objet, choisissez un nom et assignez-lui un contenu avec le symbole <-

obj <- 8504

obj
[1] 8504


Le signe = fonctionne aussi. Mais comme ce symbole est également utilisé pour d’autres choses (comparaison de valeurs, valeur d’argument), on évite de l’utiliser pour la création d’objet.

obj = 15

obj
[1] 15


Un objet peut-être réutilisé pour des calculs :

obj + 15
[1] 30


Le contenu d’un objet peut être modifié :

obj <- obj + 15

obj
[1] 30
obj <- obj + 15

obj
[1] 45


Un objet peut-être réutilisé dans une fonction

is.numeric(obj)
[1] TRUE

Type de données

Il est possible de stocker différents types de données à un objet R. Les plus classiques :


Type définition Exemple
numeric nombre 3 ou 4.23
integer nombre entier 3
double nombre double 4.23
logical logique ou booléen TRUE ou FALSE
string chaîne de caractères “Hello”
factor string (modalités prédéfinies) “Hight”
date date formatée 2020-12-14
NA absence de valeur (tout type) NA


Exemples :

obj_na <- NA

obj_num <- 3.14 

obj_bool <- FALSE    

obj_str <- "Bla bla..." 

obj_dat <- as.Date("2023-11-28")


Les fonctions ne s’appliquent pas à tous les différents types de données (et d’objet). Exemple :

weekdays(obj_dat)
[1] "mardi"


weekdays(obj_num)
Error in UseMethod("weekdays"): pas de méthode pour 'weekdays' applicable pour un objet de classe "c('double', 'numeric')"

Mon premier script

Le code saisie dans la console est gardé dans l’historique de Rstudio :


Les objets crées sont affichés dans l’Environnement :

Mais les lignes de code saisies ne sont en aucun cas sauvegardées pour une utilisation ultérieure.


Pour cela, créez un script.r (simple fichier texte) que vous pouvez enregistré sur votre machine :


Enregistrez-le sur votre machine :


Écrivez vos lignes de code directement dans ce fichier. N’oubliez pas de sauvegarder régulièrement.

Commenter un script

Il est très important de commenter un script, que ce soit pour soit ou pour les autres. Utilisez le symbole # en début de ligne. Tout ce qui suivra ce symbole ne sera pas interprété par la machine.

Au delà des commentaires, n’hésitez pas à appliquer le paradigme de programmation lettrée. Cela revient à écrire du code comme un essayiste, en suivant la logique de sa pensée et non l’ordonnancement plus logique souhaité pour l’ordinateur.


Les objets R

Il existe différents types d’objets permettant de stocker différents formats et types de données. 

  • Function - Fonction
  • Vector - liste d’éléments de même nature
  • Data.frame - Tableau de données
  • Matrix - Matrice
  • Array - Ensemble de matrices
  • List - Liste d’objet
  • Factor - vecteur avec une liste de modalités prédéfinies
  • Time serie - Série temporelle

De nombreux types d’objets sont également mis à disposition par différents packages. Ex : 

  • Simple feature - Données géographiques vectorielle - package sf
  • SpatRaster - Données géographiques RASTER - package terra

Les indispensables


Une fonction est un objet qui peut se construire avec la fonction function()

conversion_miles_to_km <- function(miles){ 
  
                                       kilometre <- miles * 1.60934
                                       
                                       return(kilometre)
  
                                      }


conversion_miles_to_km () devient est une fonction comme une autre.

conversion_miles_to_km(miles = 15)
[1] 24.1401

Le vecteur est l’objet de base de R. Il permet de stocker plusieurs éléments du même type.

equipe <- "PARIS"


La fonction c() permet de construire un vecteur de plusieurs éléments

equipes <- c("PARIS", "CRIA", "EGO", "TERMS")

equipes
[1] "PARIS" "CRIA"  "EGO"   "TERMS"


Quelque soit les valeurs en entrée, un vecteur ne stocke que des éléments de même type !

vecteur_mix <- c(13.5, TRUE, NA, "TERMS")

vecteur_mix
[1] "13.5"  "TRUE"  NA      "TERMS"


Pour naviguer dans cet objet unidimensionnel, utilisez les crochets.

→ Sélection du premier élément

equipes[1]
[1] "PARIS"


→ Sélection des éléments 1 à 3

equipes[1:3]
[1] "PARIS" "CRIA"  "EGO"  


→ Sélection des éléments 2 et 4

equipes[c(2,4)]
[1] "CRIA"  "TERMS"

Le data.frame correspond au tableau de données classique. il se compose de plusieurs colonnes pouvant contenir des données de nature différente. Chaque colonne d’un data.frame est un vecteur.

# Construction de plusieurs vecteurs de même longueur

name <- c("Paul Vidal de La Blache", "Julie Moschelesová", "Élisée Reclus", "Elina González Acha de Correa Morales")
birth <- c("1845-01-22", "1892-08-21", "1830-03-15", "1861-01-20")
age_death <- c(73, 63, 75, 81)
nat <- c("FR", "CS", "FR", "AR")
gender <- c(FALSE, TRUE, FALSE, TRUE)


Utilisez la fonction data.frame() pour construire un tableau

mon_tableau <- data.frame(name,
                          birth,
                          age_death,
                          nat,
                          gender)
  
mon_tableau 
                                   name      birth age_death nat gender
1               Paul Vidal de La Blache 1845-01-22        73  FR  FALSE
2                    Julie Moschelesová 1892-08-21        63  CS   TRUE
3                         Élisée Reclus 1830-03-15        75  FR  FALSE
4 Elina González Acha de Correa Morales 1861-01-20        81  AR   TRUE


Utilisez les crochets pour naviguer dans un tableau : mon_tableau [ ligne , colonne ]

→ Sélection par index : première ligne et toutes les colonnes

mon_tableau[ 2 , ]
                name      birth age_death nat gender
2 Julie Moschelesová 1892-08-21        63  CS   TRUE


→ Sélection par index : toutes les lignes et colonnes 1, 3 et 5

mon_tableau[  , c(1:2,4)]
                                   name      birth nat
1               Paul Vidal de La Blache 1845-01-22  FR
2                    Julie Moschelesová 1892-08-21  CS
3                         Élisée Reclus 1830-03-15  FR
4 Elina González Acha de Correa Morales 1861-01-20  AR


→ Sélection par index : 2e ligne et colonnes 1 et 5

mon_tableau[2, c(1,4)]
                name nat
2 Julie Moschelesová  CS


→ Sélection par index : 2e ligne et colonnes “name” et “gender”

mon_tableau[ 2 , c("name", "gender")]
                name gender
2 Julie Moschelesová   TRUE


Vous pouvez également utiliser le signe $ pour séléctionner une colonne : mon_tableau$date_naissance

→ Sélection colonne ‘name’

mon_tableau$name
[1] "Paul Vidal de La Blache"              
[2] "Julie Moschelesová"                   
[3] "Élisée Reclus"                        
[4] "Elina González Acha de Correa Morales"


→ Valeur de la seconde ligne dans la colonne ‘name’

mon_tableau$name[2]


Utilisez les différents opérateurs pour sélectionner par condition

→ Sélection par condition

mon_tableau[mon_tableau$age_death >= 74 , ]


mon_tableau[mon_tableau$age_death >= 74 & !is.na(age_death), ]


# mon_tableau[mon_tableau$gender, ]
mon_tableau[mon_tableau$gender != TRUE, ]


mon_tableau[mon_tableau$gender != TRUE |  mon_tableau$nat == "DE", ]


mon_tableau[nchar(mon_tableau$birth) > 4, ]

Une liste permet de stocker plusieurs objets (peu importe le type) en un seul. Une liste est une collection d’objet. Utilisez la fonction list() pour construire une liste.

Ma_list <- list(conversion_miles_to_km, 
                equipes,
                mon_tableau)


C’est un super objet très utile et puissant. Cet objet est utilisé par plusieurs packages de référence. Pour naviguer dans une liste, utilisez des doubles crochets : Ma_list[[ index ]]


→ Sélection du 2nd objet de Ma_list

Ma_list[[2]]
[1] "PARIS" "CRIA"  "EGO"   "TERMS"


→ Sélection au sein d’un objet d’une liste (2e ligne et 1ère colonne de mon objet 3)

Ma_list[[3]][2 , "name"]
[1] "Julie Moschelesová"

R base & packages

Le R base


Le langage R offre 2356 fonctions de base* stockées dans 7 packages standards, installés et chargés par défault.

  • base = 1270 fonctions de base qui permettent à R de fonctionner comme un langage
  • utils = 225 fonctions utilitaires (ex : installation de package, import/export…)
  • stats = 452 fonctions statistiques pour les calculs et la génération de nombres aléatoires
  • grDevices = 119 fonctions pour la gestion des périphériques graphiques
  • graphics = 87 fonctions graphiques
  • methods = 203 fonctions pour définir des méthodes et classes pour les objets R
  • datasets = 416 jeux de données d’exemples

640 fonctions supplémentaires sont également mises à disposition via 5 autres packages pré-installés (grid, splines, stats4, tcltk, tools), mais pas automatiquement chargés. (*le 2024-11-28)


Ce socle commun de fonctionnalité est couramment nommé le R-base

Le R base


Les fonctionnalités standards (ou primitives) proposées par le R-base permettent de réaliser beaucoup de choses. Il est cependant nécessaire d’installer des packages pour profiter de certaines fonctionnalités, ex :


  • Gérer des types de données spécifiques (ex : géographique, image, son…)
  • Utiliser des méthodes d’analyses spécifiques (ex : réseau, séquence, NLP…)
  • Produire des représentations graphiques particulières et/ou élégantes
  • Optimiser son code (fonctions codées en C++, parallélisation…)
  • Interagir avec d’autres outils (web scraping, production de support…)

Les packages


21729 packages sont disponibles sur le système officiel de stockage des packages : le Comprehensive R Archive Network.


Installation d’un package du CRAN en ligne de commande

install.packages("mapsf")


Pour utiliser les fonctions du package, chargez la librairie :

library(mapsf)

→ Il est nécessaire de charger la librairie à chaque nouvelle session R



Il existe également d’autres sources de stockage :

  • Bioconductor qui concentre des packages portant sur l’analyse des données génomiques
  • R-forge qui est une plateforme orientée vers les développeurs
  • GitHub qui est un service web d’hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git


Pour installer un package stocké sur GitHub, commencez par installer le package remotes :

install.packages("remotes")


Puis utilisez sa fonction install_github() :

remotes::install_github("inseefrlab/apinsee")


library(apinsee)

il est nécessaire d’installer Rtools sur Windows pour réaliser cette opération.

Aide et documentation

Error & Warning


Commencez par lire les messages que renvoie la console !


Auto-complétion


La fonctionnalité d’auto-complétion proposée par Rstudio peut être très efficace. Utilisez la touche tab.





Documentation obligatoire

Les packages (base et CRAN) sont obligatoirement accompagnés d’une documentation. Vous pouvez y accéder en ligne de commande ou en clic-bouton :

library(mapsf)

help(mapsf)

?mapsf

?mf_map



Documentation officielle supplémentaire


La majorité des packages de référence propose de la documentation plus digeste à travers différents formats comme une vignette, une cheatsheet, voire même un site web.


Vignette du package mapsf

Cheatsheet (antisèche) du package mapsf


Site web du package mapsf

Les package addins

Les fonctionnalités de certains packages se traduisent par l’utilisation d’une fenêtre graphique qui permet de faire du R en clic-bouton.


L’intérêt ? Récupérer le code générer par l’interface !


  1. esquisse pour faire des graphiques avec ggplot2

  1. questionr pour le recodage de variable

Débuter R en progressivement

Pour commencer l’apprentissage de R en douceur, vous pouvez aussi utiliser des logiciels clic-bouton qui reposent sur le langage R et qui permettent de récupérer le code généré. Exemple :

Et tout le reste !


La communauté R est très active et prolifique en matière de partage et de documentation. Des milliers de ressources sur la pratique de R sont accessibles sur le web. Ex :

Référencement de ressources sur la pratique de R en SHS

Groupe d’utilisateur·rices pour le traitement de l’information géographique avec R



Exemples de ressources pour démarrer :



Sans oublier ChatGPT



Mise en pratique

Le projet Rstudio

Travailler dans le cadre d’un projet Rstudio est, comme avec QGIS, une très bonne pratique. Cela permet d’assurer la portabilité de votre travail. Pour créer un projet :


Cela créé un nouveau répertoire (dossier) contenant un fichier projet (.Rproj).

Pour ouvrir un projet, il vous suffit de double-cliquer sur le fichier Rproj. Pour vérifier que vous travaillez bien dans le projet, regardez le nom indiqué en haut à droite de la fenêtre Rstudio. Lorsque l’on travaille dans le cadre d’un projet, R pointe par défaut à la racine de celui-ci.


Ajoutez tous vos scripts, vos données et les sorties dans le répertoire (dossier) du projet. Vous pouvez ainsi déplacer et partager facilement votre travail.

Démonstration




  1. Décompressez-le
  2. Double-cliquez sur le fichier projet (.Rproj) pour lancez Rstudio
  3. Ouvrez le script Exemple.r
  4. Éxécutez le script !

Les notebooks



C’est génial !



Quelques exemples d’utilisation…


Exercice


Diaporama Quarto Reveal JS construit avec…


R version 4.4.1 (2024-06-14)



Diapositives libres (CC BY 4.0) :



Informations de session :

sessionInfo()
R version 4.4.1 (2024-06-14)
Platform: x86_64-pc-linux-gnu
Running under: Ubuntu 22.04.4 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0

locale:
 [1] LC_CTYPE=fr_FR.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=fr_FR.UTF-8        LC_COLLATE=fr_FR.UTF-8    
 [5] LC_MONETARY=fr_FR.UTF-8    LC_MESSAGES=fr_FR.UTF-8   
 [7] LC_PAPER=fr_FR.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=fr_FR.UTF-8 LC_IDENTIFICATION=C       

time zone: Europe/Paris
tzcode source: system (glibc)

attached base packages:
 [1] tools     tcltk     stats4    splines   grid      stats     graphics 
 [8] grDevices utils     datasets  methods   base     

other attached packages:
[1] ggplot2_3.5.1 plyr_1.8.9    stringr_1.5.1 rvest_1.0.4  

loaded via a namespace (and not attached):
 [1] gtable_0.3.5      jsonlite_1.8.8    dplyr_1.1.4       compiler_4.4.1   
 [5] selectr_0.4-2     tidyselect_1.2.1  Rcpp_1.0.12       xml2_1.3.6       
 [9] textshaping_0.4.0 systemfonts_1.1.0 scales_1.3.0      yaml_2.3.8       
[13] fastmap_1.1.1     R6_2.5.1          labeling_0.4.3    generics_0.1.3   
[17] curl_5.2.1        knitr_1.46        tibble_3.2.1      munsell_0.5.1    
[21] pillar_1.9.0      rlang_1.1.3       utf8_1.2.4        stringi_1.8.4    
[25] xfun_0.43         cli_3.6.2         withr_3.0.0       magrittr_2.0.3   
[29] digest_0.6.35     rstudioapi_0.16.0 lifecycle_1.0.4   vctrs_0.6.5      
[33] evaluate_0.23     glue_1.7.0        farver_2.1.2      ragg_1.3.3       
[37] fansi_1.0.6       colorspace_2.1-0  rmarkdown_2.26    httr_1.4.7       
[41] pkgconfig_2.0.3   htmltools_0.5.8.1