SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielleECAM Brussels Engineering School
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheSana Aroussi
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNSALMARACHIDI1
 
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURIMansouri Khalifa
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdfhanamettali
 
Analyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationAnalyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationMireille Blay-Fornarino
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
Perceptron monocouche en français
Perceptron monocouche en françaisPerceptron monocouche en français
Perceptron monocouche en françaisHakim Nasaoui
 
Cours tic complet
Cours tic completCours tic complet
Cours tic completsofixiito
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 

La actualidad más candente (20)

Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Python avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementiellePython avancé : Interface graphique et programmation évènementielle
Python avancé : Interface graphique et programmation évènementielle
 
Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
Formation python
Formation pythonFormation python
Formation python
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
 
Algo tri
Algo triAlgo tri
Algo tri
 
Data mining - Associativité
Data mining - AssociativitéData mining - Associativité
Data mining - Associativité
 
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURICours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
Cours guvernance des systèmes d'information partie 1 prof. Khalifa MANSOURI
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Présentation pfe
Présentation pfePrésentation pfe
Présentation pfe
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
Analyse et conception des systèmes d’information
Analyse et conception des systèmes d’informationAnalyse et conception des systèmes d’information
Analyse et conception des systèmes d’information
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Perceptron monocouche en français
Perceptron monocouche en françaisPerceptron monocouche en français
Perceptron monocouche en français
 
Cours tic complet
Cours tic completCours tic complet
Cours tic complet
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 

Destacado

Plutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-networkPlutniak maisonobe resto atelier2-network
Plutniak maisonobe resto atelier2-networkMarion Maisonobe
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEODimitri Brunel
 
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 introductionAhmadou DICKO
 
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 à ...Emmanuel Vivier
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel RBoris Guarisma
 
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 COMPOlucas34990
 
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-2011Salainversion
 
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
 
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 Socialbancajaull
 
Basesdatos teo5 modelo_relacional
Basesdatos teo5 modelo_relacionalBasesdatos teo5 modelo_relacional
Basesdatos teo5 modelo_relacionalgrupo coda
 
Enregistreurs de-données presentation-slideshare
Enregistreurs de-données presentation-slideshareEnregistreurs de-données presentation-slideshare
Enregistreurs de-données presentation-slideshareAddi-Data
 
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-2011Salainversion
 
Prud hommme
Prud hommmePrud hommme
Prud hommmelpeltier
 
Astronomia De La Religion
Astronomia De La ReligionAstronomia De La Religion
Astronomia De La Religionguestca38365f
 

Destacado (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
 

Similar a Une Introduction à R

Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdfOuailChoukhairi
 
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"parisraddicts
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptxssusera0d0e81
 
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 ! Yi YANG
 
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 Parischristophep21
 
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++Microsoft
 
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) univalence
 
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 SpartanMicrosoft
 
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++11Microsoft
 
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 noSQLHervé Leclerc
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
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éesJean-Marc Dupont
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
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).pptxLuneSabsPericolo1
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
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 basemohamedAitomar1
 

Similar 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++
 
Initiation r
Initiation rInitiation r
Initiation r
 
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
 

Más de François Guillem

Cartographie interactive avec R
Cartographie interactive avec RCartographie interactive avec R
Cartographie interactive avec RFrançois Guillem
 
Cartographie politique avec R
Cartographie politique avec RCartographie politique avec R
Cartographie politique avec RFrançois Guillem
 
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 RFrançois Guillem
 

Más 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