une introduction à r
DESCRIPTION
Slides présentés à l'occasion du premier meetup Paris R Addicts. La présentation est destiné à ceux qui ne connaissent pas ou très peu. Elle montre les intérêts et les inconvénients du logiciel ainsi que des éléments de syntaxe et des liens qui aideront l'apprentissage.TRANSCRIPT
![Page 1: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/1.jpg)
1
![Page 2: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/2.jpg)
2
![Page 3: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/3.jpg)
3
Il est essentiel d’utiliser un bon outil d’analyse de données !
![Page 4: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/4.jpg)
Une Introduction à François GuillemAnalyste de données @
![Page 5: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/5.jpg)
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 !
![Page 6: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/6.jpg)
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
![Page 7: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/7.jpg)
Démarrer
![Page 8: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/8.jpg)
Pourquoi et quand utiliser ?
![Page 9: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/9.jpg)
« 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 !
![Page 10: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/10.jpg)
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
![Page 11: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/11.jpg)
Les inconvénients de
• Gestion peu efficace de la mémoire :o Les données sont souvent copiées plusieurs foiso Limité par la RAM disponibleo 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
![Page 12: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/12.jpg)
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 !
![Page 13: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/13.jpg)
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
![Page 14: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/14.jpg)
Démonstration
![Page 15: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/15.jpg)
Hello World
print("Hello world")"Hello world"
# Plus subtilmessage <- "Hello world"message
![Page 16: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/16.jpg)
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
![Page 17: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/17.jpg)
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(«2012-12-21»)
![Page 18: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/18.jpg)
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:3V2 <- c(0, 3.5, 5)V3 <- c("a", "b", "c")
# OpérationsV1 + 1V1 + V2V1 > 1V1 > V2 # Comparaison élément par élémentexp(V1); log(V1) # Renvoient un vecteur taille 32 * V1V1 * V2 # multiplication élément par élémentt(V1) %*% V2 # produit matricielV1 %*% t(V2)
![Page 19: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/19.jpg)
Travailler avec des vecteurs
# SélectionsV1[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)V3V3["a"]V3[c("a", "b")]
![Page 20: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/20.jpg)
Travailler avec des « data.frame »# Importer données : read.csv, read.xls, sqlQuery, load, etc.data <- read.csv(«fichier.csv»)
# Afficher une variabledata$nom_de_variable
#Supprimer une variable:data$var <- NULL
# Créer une variabledata$nouvelle_var <- data$var1 + 3
# Sélections : comme pour les vecteurs sauf qu’on a deux dimensionsdata[c(1, 2, 3), ] # 3 premières lignesdata[, 1] # 1ère colonnedata[c(1, 2, 3), 1] # trois premiers éléments de la 1ère colonnehead(data, 3) # trois premières lignes du tableautail(data, 3) # trois dernières lignes du tableau
![Page 21: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/21.jpg)
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)}
![Page 22: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/22.jpg)
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}
![Page 23: Une Introduction à R](https://reader035.vdocuments.site/reader035/viewer/2022081514/5582f5a9d8b42a38168b4d59/html5/thumbnails/23.jpg)
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 sessionlibrary(nom_du_package) # pas besoin de guillemets