Comment explorer des données ouvertes avec R ?
Cette présentation donnée à LINUQ le 31 octobre 2015 couvre les bases du langage R : opérateurs, objets, structures de contrôle, graphiques avec ggplot2, et modélisation linéaire. Le tout présenté avec R Markdown et Knitr pour un rendu reproductible.
Tu trouveras les fichiers sources complets dans le dossier d’images de cet article, notamment slides.Rmd (présentation R Markdown), style.R, et markdown.css.
🌘 Contenu de la présentation
- Présentation du logiciel statistique R
- Opérateurs, objets et types
- Exemple pratique
- Ressources
🌘 Présentation du logiciel statistique R
R est un logiciel libre basé sur le langage de programmation S. Il est multi-paradigme : orienté objet, impératif et fonctionnel.
🌘 Environnement
R offre un ensemble de fonctions de base et s’étend avec des paquets. Ces extensions sont souvent écrites en C, C++ et FORTRAN.
library("MASS")
🌘 Développer en R
Tu peux développer en R avec plusieurs environnements :
- RStudio
- Emacs + ESS
- Eclipse + StatET
🌘 Opérateurs de base
# Assignation
(x <- c(1,2,3))
# Extraction
(y <- data.frame(a=x[1],b=x[2]))
# Objets
(z <- y$a)
🌘 Les objets en R
Les objets dans R ont une classe, un type et une dimension :
monVecteur <- c(1,2,3,4)
class(monVecteur)
typeof(monVecteur)
dim(monVecteur)
maMatrice <- matrix(nrow = 2,ncol = 2, data = monVecteur)
class(maMatrice)
typeof(maMatrice)
dim(maMatrice)
🌘 Les types en R
Nous avons vu le vecteur et la matrice. Il y a aussi les facteurs, qui permettent d’utiliser des modalités qualitatives :
factor(c("oui","non","non","oui","nsp","oui","non"))
Les tableaux, une extension multidimensionnelle des matrices :
array(1:8,dim=c(2,2,2))
Les listes, qui sont des collections d’objets de types différents :
list("1",TRUE,c(1,2,3),function(x) x^2)
Et les cadres de données, semblables à des tables SQL :
data.frame(numero_membre=c(1,2,3,4),
nom_membre=c("François","Jean","Marie","Stéphanie"),
age_membre=c(26,53,41,32),
stringsAsFactors = TRUE)
🌘 Structures de contrôle
# option
if(TRUE) "vrai" else "faux"
# sélection
1:5<3
(1:10)[-3:-5]
🌘 Boucles
Les boucles explicites sont à éviter en R :
for (i in 1:2)
print(i)
Préfère les boucles implicites :
y <- sapply(3:4,print)
🌘 Les fonctions
Déclaration et exemple :
maFonction <- function(x, ...)
{
if (x)
sum(...)
else
0
}
maFonction(FALSE,1,2,3)
maFonction(TRUE,1,2,3)
🌘 Quelques statistiques
set.seed(123)
mesDonnees <- rnorm(10,mean = 5,sd = 3)
range(mesDonnees)
summary(mesDonnees)
quantile(mesDonnees,c(seq(.25,.75,.25)))
🌘 Un premier graphique
Avec la librairie ggplot2 :
library("ggplot2")
monData <-
data.frame(x=seq_along(mesDonnees),
y=mesDonnees[order(mesDonnees)])
monGraph <-
ggplot(data=monData,aes(x=x,y=y)) +
geom_line() +
theme_classic()

🌘 Un premier modèle
(monModele <- lm(y~x,data=monData))
Sommaire du modèle :
summary(monModele)
Analyse de variance du modèle :
anova(monModele)
🌘 Ressources
- R Project
- Revolution R
- CRAN R Other Docs (incluant livres en français)
- Wikibooks R Programming
- R Bloggers
- Awesome R
🌘 Version Quarto
Ce document a été converti au format Quarto :
Tu trouveras les fichiers sources dans le dossier d’images de cet article. Ouvre slides.Rmd dans RStudio pour voir la présentation originale et l’adapter à tes propres données.