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.
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
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