SlideShare uma empresa Scribd logo
1 de 23
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

Mais conteúdo relacionado

Mais procurados

Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
Mohammed TAMALI
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdf
imane26
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
Med Zaibi
 

Mais procurados (20)

Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
Power Bi, le tour complet 2017
Power Bi, le tour complet 2017 Power Bi, le tour complet 2017
Power Bi, le tour complet 2017
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Big data
Big dataBig data
Big data
 
Initiation r
Initiation rInitiation r
Initiation r
 
the naive bayesien classifier
the naive bayesien classifierthe naive bayesien classifier
the naive bayesien classifier
 
Scikit learn: apprentissage statistique en Python
Scikit learn: apprentissage statistique en PythonScikit learn: apprentissage statistique en Python
Scikit learn: apprentissage statistique en Python
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Cohesion et couplage
Cohesion et couplage Cohesion et couplage
Cohesion et couplage
 
Arbre de décision.pdf
Arbre de décision.pdfArbre de décision.pdf
Arbre de décision.pdf
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Data Mining (Partie 1).pdf
Data Mining (Partie 1).pdfData Mining (Partie 1).pdf
Data Mining (Partie 1).pdf
 
Réseaux des neurones
Réseaux des neuronesRéseaux des neurones
Réseaux des neurones
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Cours scoring
Cours scoringCours scoring
Cours scoring
 

Destaque

Cortal consors informe semanal de_analisis_tecnico_01-03-2011
Cortal consors informe semanal de_analisis_tecnico_01-03-2011Cortal consors informe semanal de_analisis_tecnico_01-03-2011
Cortal consors informe semanal de_analisis_tecnico_01-03-2011
Salainversion
 
Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...
Salainversion
 
Basesdatos teo5 modelo_relacional
Basesdatos teo5 modelo_relacionalBasesdatos teo5 modelo_relacional
Basesdatos teo5 modelo_relacional
grupo coda
 
Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011
Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011
Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011
Salainversion
 
Astronomia De La Religion
Astronomia De La ReligionAstronomia De La Religion
Astronomia De La Religion
guestca38365f
 

Destaque (20)

Présentation de data.table
Présentation de data.tablePrésentation de data.table
Présentation de data.table
 
Plutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-networkPlutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-network
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEO
 
Analyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAnalyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introduction
 
Atelier r-gerad
Atelier r-geradAtelier r-gerad
Atelier r-gerad
 
Social Media ROI - Retour Sur Investissement des media sociaux : 15 choses à ...
Social Media ROI - Retour Sur Investissement des media sociaux : 15 choses à ...Social Media ROI - Retour Sur Investissement des media sociaux : 15 choses à ...
Social Media ROI - Retour Sur Investissement des media sociaux : 15 choses à ...
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
 
Analyse d’un langage de programmation réflexif orienté composants Etude de COMPO
Analyse d’un langage de programmation réflexif orienté composants Etude de COMPOAnalyse d’un langage de programmation réflexif orienté composants Etude de COMPO
Analyse d’un langage de programmation réflexif orienté composants Etude de COMPO
 
Cortal consors informe semanal de_analisis_tecnico_01-03-2011
Cortal consors informe semanal de_analisis_tecnico_01-03-2011Cortal consors informe semanal de_analisis_tecnico_01-03-2011
Cortal consors informe semanal de_analisis_tecnico_01-03-2011
 
Prince silencieux
Prince silencieuxPrince silencieux
Prince silencieux
 
Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...
Informe semanal de Análisis Técnico de Cortal Consors del 21 de diciembre de ...
 
Goanimate
GoanimateGoanimate
Goanimate
 
Miembros pmi
Miembros pmiMiembros pmi
Miembros pmi
 
II.TES: Qué es emprender en lo Social
II.TES: Qué es emprender en lo SocialII.TES: Qué es emprender en lo Social
II.TES: Qué es emprender en lo Social
 
Basesdatos teo5 modelo_relacional
Basesdatos teo5 modelo_relacionalBasesdatos teo5 modelo_relacional
Basesdatos teo5 modelo_relacional
 
Enregistreurs de-données presentation-slideshare
Enregistreurs de-données presentation-slideshareEnregistreurs de-données presentation-slideshare
Enregistreurs de-données presentation-slideshare
 
Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011
Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011
Cortal consors informe_semanal_de_analisis_tecnico_22-02-2011
 
Prud hommme
Prud hommmePrud hommme
Prud hommme
 
Astronomia De La Religion
Astronomia De La ReligionAstronomia De La Religion
Astronomia De La Religion
 
Massacre amazonie-re
Massacre amazonie-reMassacre amazonie-re
Massacre amazonie-re
 

Semelhante a Une Introduction à R

Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
OuailChoukhairi
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
Jean-Marc Dupont
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
LuneSabsPericolo1
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
Fredy Fadel
 

Semelhante a Une Introduction à R (20)

Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptx
 
Avec le langage R, prenez de la hauteur dans l’analyse de vos données !
Avec le langage R, prenez de la hauteur dans l’analyse de vos données ! Avec le langage R, prenez de la hauteur dans l’analyse de vos données !
Avec le langage R, prenez de la hauteur dans l’analyse de vos données !
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
 
GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Introduction au langage python notion de base
Introduction au langage python notion de baseIntroduction au langage python notion de base
Introduction au langage python notion de base
 
Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)
 

Mais de François Guillem

Mais de François Guillem (6)

Ltv r addicts
Ltv r addictsLtv r addicts
Ltv r addicts
 
Cartographie interactive avec R
Cartographie interactive avec RCartographie interactive avec R
Cartographie interactive avec R
 
Cartographie politique avec R
Cartographie politique avec RCartographie politique avec R
Cartographie politique avec R
 
Outils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur ROutils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur R
 
CaRtogRaphie avec R
CaRtogRaphie avec RCaRtogRaphie avec R
CaRtogRaphie avec R
 
Meetup raddicts reshape2
Meetup raddicts reshape2Meetup raddicts reshape2
Meetup raddicts reshape2
 

Une Introduction à R

  • 1. 1
  • 2. 2
  • 3. Il est essentiel d’utiliser un bon outil d’analyse de données ! 3
  • 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
  • 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
  • 15. Hello World print("Hello world") "Hello world" # 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 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)
  • 19. 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")]
  • 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 # 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