1
2
Il est essentiel d’utiliser un bon
outil d’analyse de données !
3
Une
Introduction à
François Guillem
Analyste de données @
Qu’est-ce que ?
• Logiciel de statistique
• Langage de programmation dédié à l’analyse
statistique
• Open source (gratuit !)
• Pas de GUI : tout se fait en ligne de
commande !
Où obtenir ?
• Le logiciel de base est disponible ici :
http://cran.r-project.org
• Pour les utilisateurs windows, installer en
plus Rtools :
http://cran.r-project.org/bin/windows/Rtools/
• Pour faciliter votre vie, installer l’IDE Rstudio :
http://www.rstudio.com/ide/download/desktop
Démarrer
Pourquoi et quand
utiliser ?
« Philosophie » de
• Le matériel n’est pas une limite
• En particulier, beaucoup plus de RAM que de
données à traiter
• La vraie contrainte, c’est votre temps !
Les avantages de
Simplicité
• Langage
relativement
simple
• Conçu pour des
non-
développeurs
• Mais
apprentissage
initial difficile
Flexibilité
• Langage très
permissif
• Système
d’extensions
(packages)
• Interface avec
d’autres
langages
(Java, C, C++)
• Appeler
d’autres
programmes
Interactivité
• Commandes
exécutées à la
volée
• Permet de
décider au fur et
à mesure quoi
faire
• Tous les
résultats
peuvent être
stockés et
réutilisés
Partage
• Open source
• Réplicabilité
des travaux
• Génération de
rapports
• Système
d’extension
• Communauté
dynamique et
sympatique
Les inconvénients de
• Gestion peu efficace de la mémoire :
o Les données sont souvent copiées plusieurs fois
o Limité par la RAM disponible
o Volume de données max ≈ RAM / 4
• R peut être très lent lorsqu’il s’agit de réaliser
un très grand nombre d’opérations simples
(Evitez les boucles !)
• Limites atténuées par certains packages
mais temps d’apprentissage long
Obtenir de l’aide
• "Short-refcard"
• Dans Rstudio : recherche dans l’onglet aide.
Ne cherche que les fonctions dans les
packages installés
• Les vignettes : taper « vignette() » dans la
console R
• Sur le site du CRAN (taskviews, search)
• Forum du cirad
• Nous !
Manuels en français
• R pour les débutants : se concentre plutôt sur
les aspects techniques de R
• Introduction à R : plus pragmatique, apprend
à réaliser des analyses simples avec R
Démonstration
Hello World
print("Hello world")
"Hello world"
# Plus subtil
message <- "Hello world"
message
Types de données
• numeric
• logical (TRUE, FALSE, 1 > 0, 1 == 0, TRUE
& FALSE, TRUE | FALSE)
• character => texte
• factor => variables catégorielles
• data.frame => tableau dans lequel les
colonnes peuvent avoir des types différents
• list => données non-tabulaires
• ... et bien d’autres
Types de données
• En cas de doute: class(x)
• conversion: as.nom_de_classe(x)
• ex:
as.character(1), as.numeric(«1»), as.Date(«2
012-12-21»)
Travailler avec des vecteurs
# Dans R la plupart des fonctions sont vectorisées, ie. elles prennent
# un vecteur et renvoient un vecteur de la même taille => Les boucles
# sont rarement nécessaires
# Créer un vecteur : c (comme «concaténation»)
V1 <- c(1, 2, 3) # ou V1 <- 1:3
V2 <- c(0, 3.5, 5)
V3 <- c("a", "b", "c")
# Opérations
V1 + 1
V1 + V2
V1 > 1
V1 > V2 # Comparaison élément par élément
exp(V1); log(V1) # Renvoient un vecteur taille 3
2 * V1
V1 * V2 # multiplication élément par élément
t(V1) %*% V2 # produit matriciel
V1 %*% t(V2)
Travailler avec des vecteurs
# Sélections
V1[1] # Sélectionne le premier élément
V1[c(1,2)] # Sélectionne les deux premiers éléments
V1[c(TRUE, TRUE, FALSE)] # Idem
V1[V1 < V2] # Que va-t-il se passer ?
V2[V1] # Et là ?
# Chaque élément d’un vecteur peut avoir un nom:
V3 <- c(a = 1, b = 2, c = 3)
V3
V3["a"]
V3[c("a", "b")]
Travailler avec des « data.frame »
# Importer données : read.csv, read.xls, sqlQuery, load, etc.
data <- read.csv(«fichier.csv»)
# Afficher une variable
data$nom_de_variable
#Supprimer une variable:
data$var <- NULL
# Créer une variable
data$nouvelle_var <- data$var1 + 3
# Sélections : comme pour les vecteurs sauf qu’on a deux dimensions
data[c(1, 2, 3), ] # 3 premières lignes
data[, 1] # 1ère colonne
data[c(1, 2, 3), 1] # trois premiers éléments de la 1ère colonne
head(data, 3) # trois premières lignes du tableau
tail(data, 3) # trois dernières lignes du tableau
Boucles, conditions, fonctions
a <- 1
if (a == 1) {
# code à évaluer si la condition est vraie
}
a <- TRUE
if (a) {
# ...
}
for (i in 1:5) {
print(i)
}
v <- c("a", "b", "c")
for (letter in v) {
print(letter)
}
Boucles, conditions, fonctions
f <- function(x) {
x <- x^2
return(x)
}
f <- function(x) {
x <- x^2
x # Le return est implicite
}
f <- function(x) {
x^2
}
f <- function(x, y = 0) { # valeur par défaut
x + y
}
Les packages
# Un package est un ensemble de fonctions et de classes
# supplémentaires
# A faire une seule fois
install.packages("nom_du_package")
# A faire à chaque nouvelle session
library(nom_du_package) # pas besoin de guillemets

Une Introduction à R

  • 1.
  • 2.
  • 3.
    Il est essentield’utiliser un bon outil d’analyse de données ! 3
  • 4.
  • 5.
    Qu’est-ce que ? •Logiciel de statistique • Langage de programmation dédié à l’analyse statistique • Open source (gratuit !) • Pas de GUI : tout se fait en ligne de commande !
  • 6.
    Où obtenir ? •Le logiciel de base est disponible ici : http://cran.r-project.org • Pour les utilisateurs windows, installer en plus Rtools : http://cran.r-project.org/bin/windows/Rtools/ • Pour faciliter votre vie, installer l’IDE Rstudio : http://www.rstudio.com/ide/download/desktop
  • 7.
  • 8.
  • 9.
    « Philosophie »de • Le matériel n’est pas une limite • En particulier, beaucoup plus de RAM que de données à traiter • La vraie contrainte, c’est votre temps !
  • 10.
    Les avantages de Simplicité •Langage relativement simple • Conçu pour des non- développeurs • Mais apprentissage initial difficile Flexibilité • Langage très permissif • Système d’extensions (packages) • Interface avec d’autres langages (Java, C, C++) • Appeler d’autres programmes Interactivité • Commandes exécutées à la volée • Permet de décider au fur et à mesure quoi faire • Tous les résultats peuvent être stockés et réutilisés Partage • Open source • Réplicabilité des travaux • Génération de rapports • Système d’extension • Communauté dynamique et sympatique
  • 11.
    Les inconvénients de •Gestion peu efficace de la mémoire : o Les données sont souvent copiées plusieurs fois o Limité par la RAM disponible o Volume de données max ≈ RAM / 4 • R peut être très lent lorsqu’il s’agit de réaliser un très grand nombre d’opérations simples (Evitez les boucles !) • Limites atténuées par certains packages mais temps d’apprentissage long
  • 12.
    Obtenir de l’aide •"Short-refcard" • Dans Rstudio : recherche dans l’onglet aide. Ne cherche que les fonctions dans les packages installés • Les vignettes : taper « vignette() » dans la console R • Sur le site du CRAN (taskviews, search) • Forum du cirad • Nous !
  • 13.
    Manuels en français •R pour les débutants : se concentre plutôt sur les aspects techniques de R • Introduction à R : plus pragmatique, apprend à réaliser des analyses simples avec R
  • 14.
  • 15.
    Hello World print("Hello world") "Helloworld" # Plus subtil message <- "Hello world" message
  • 16.
    Types de données •numeric • logical (TRUE, FALSE, 1 > 0, 1 == 0, TRUE & FALSE, TRUE | FALSE) • character => texte • factor => variables catégorielles • data.frame => tableau dans lequel les colonnes peuvent avoir des types différents • list => données non-tabulaires • ... et bien d’autres
  • 17.
    Types de données •En cas de doute: class(x) • conversion: as.nom_de_classe(x) • ex: as.character(1), as.numeric(«1»), as.Date(«2 012-12-21»)
  • 18.
    Travailler avec desvecteurs # Dans R la plupart des fonctions sont vectorisées, ie. elles prennent # un vecteur et renvoient un vecteur de la même taille => Les boucles # sont rarement nécessaires # Créer un vecteur : c (comme «concaténation») V1 <- c(1, 2, 3) # ou V1 <- 1:3 V2 <- c(0, 3.5, 5) V3 <- c("a", "b", "c") # Opérations V1 + 1 V1 + V2 V1 > 1 V1 > V2 # Comparaison élément par élément exp(V1); log(V1) # Renvoient un vecteur taille 3 2 * V1 V1 * V2 # multiplication élément par élément t(V1) %*% V2 # produit matriciel V1 %*% t(V2)
  • 19.
    Travailler avec desvecteurs # Sélections V1[1] # Sélectionne le premier élément V1[c(1,2)] # Sélectionne les deux premiers éléments V1[c(TRUE, TRUE, FALSE)] # Idem V1[V1 < V2] # Que va-t-il se passer ? V2[V1] # Et là ? # Chaque élément d’un vecteur peut avoir un nom: V3 <- c(a = 1, b = 2, c = 3) V3 V3["a"] V3[c("a", "b")]
  • 20.
    Travailler avec des« data.frame » # Importer données : read.csv, read.xls, sqlQuery, load, etc. data <- read.csv(«fichier.csv») # Afficher une variable data$nom_de_variable #Supprimer une variable: data$var <- NULL # Créer une variable data$nouvelle_var <- data$var1 + 3 # Sélections : comme pour les vecteurs sauf qu’on a deux dimensions data[c(1, 2, 3), ] # 3 premières lignes data[, 1] # 1ère colonne data[c(1, 2, 3), 1] # trois premiers éléments de la 1ère colonne head(data, 3) # trois premières lignes du tableau tail(data, 3) # trois dernières lignes du tableau
  • 21.
    Boucles, conditions, fonctions a<- 1 if (a == 1) { # code à évaluer si la condition est vraie } a <- TRUE if (a) { # ... } for (i in 1:5) { print(i) } v <- c("a", "b", "c") for (letter in v) { print(letter) }
  • 22.
    Boucles, conditions, fonctions f<- function(x) { x <- x^2 return(x) } f <- function(x) { x <- x^2 x # Le return est implicite } f <- function(x) { x^2 } f <- function(x, y = 0) { # valeur par défaut x + y }
  • 23.
    Les packages # Unpackage est un ensemble de fonctions et de classes # supplémentaires # A faire une seule fois install.packages("nom_du_package") # A faire à chaque nouvelle session library(nom_du_package) # pas besoin de guillemets