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
1
2
3
Il est essentiel d’utiliser un bon outil d’analyse de données !
Une Introduction à François GuillemAnalyste 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 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
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 subtilmessage <- "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(«2012-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: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)
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")]
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
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 sessionlibrary(nom_du_package) # pas besoin de guillemets