Programmer en R/Faire ses premiers pas
Cette section constitue une rapide introduction à R.
Manipuler des nombres
modifierOn peut facilement réaliser les opérations standards dans R.
> 1+1
[1] 2
> 2*3
[1] 6
> 2/3
[1] 0.6666667
> 2^3
[1] 8
Manipuler du texte
modifierPour différencier les chaînes de caractères (ie le texte) des nombres, il suffit d'utiliser les guillemets.
> "ceci est une chaîne de caractère"
[1] "ceci est une chaîne de caractère"
Enregistrer des données
modifierPour assigner une valeur à un objet, on utilise l'opérateur <-
> x <- 5
On peut ensuite afficher la valeur :
> print(x)
[1] 5
On peut aussi utiliser cet objet dans d'autres calculs :
> x + 1
[1] 6
Vecteurs
modifierUn vecteur est une suite de valeur de même type. Par exemple, on peut avoir un vecteur de nombres ou un vecteur de chaînes de caractères.
La fonction c()
permet de construire un vecteur.
> prix <- c(1.90, 3.50, 14.90)
> prix
[1] 1.9 3.5 14.9
> fruit <- c("pomme", "poire", "fraise")
> fruit
[1] "pomme" "poire" "fraise"
On peut accéder à un élément du vecteur en utilisant les crochets et le numéro de l'élément.
> fruit <- c("pomme", "poire", "fraise")
> fruit[1]
[1] "pomme"
> fruit[1:2]
[1] "pomme" "poire"
> fruit[1:3]
[1] "pomme" "poire" "fraise"
> fruit[c(1,3)]
[1] "pomme" "fraise"
Matrices
modifierUne matrice est formée à partir d'un vecteur, en précisant le nombre de lignes et/ou de colonnes. Par exemple :
> A <- matrix(c(1, 2, 3, 4, 5, 6), nrow=2)
> print(A)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> B <- array(1:6, dim = c(3, 2))
> print(B)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
On peut aussi assembler des vecteurs-ligne (row bind) :
> A <- rbind(c(1, 3, 5), c(2, 4, 6)); print(A)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
Les opérations algébriques élémentaires sont les suivantes :
> A %*% B # produit matriciel
[,1] [,2]
[1,] 22 49
[2,] 28 64
> aperm(A, c(2, 1)) # transposition
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
> A*A # produit terme à terme
[,1] [,2] [,3]
[1,] 1 9 25
[2,] 4 16 36
Tableaux de données
modifierSouvent en statistiques, on manipule des données sous forme de tableaux. En R, les tableaux de données sont appelés data.frame
.
> table_fruits <- data.frame(
+ fruit = c("pomme", "poire", "fraise"),
+ prix = c(1.90, 3.50, 14.90)
+ )
>
> table_fruits
fruit prix
1 pomme 1.9
2 poire 3.5
3 fraise 14.9
Pour accéder à la colonne prix, on peut utiliser :
- utiliser la syntaxe des crochets et indiquer le nom de la colonne après la virgule
- utiliser la syntaxe des crochets et indiquer le numéro de la colonne après la virgule
- appeler la colonne en utilisant la syntaxe
nom_du_tableau$nom_de_la_variable
> table_fruits[,"prix"]
[1] 1.9 3.5 14.9
> table_fruits[,2]
[1] 1.9 3.5 14.9
> table_fruits$prix
[1] 1.9 3.5 14.9
Pour accéder à la deuxième ligne, on utilise la syntaxe des crochets :
table_fruits[2,]
> table_fruits[2,]
fruit prix
2 poire 3.5
Pour en savoir plus, sur la manière dont on manipule un tableau de données, on peut lire la section Manipuler un tableau de données.
Obtenir de l'aide
modifierOn peut obtenir de l'aide sur une fonction avec la commande help("")
> help("abs")
> help("^")
ou bien avec le point d'interrogation
> ?abs
> ?"^"
Le point d'interrogation recherche dans toutes les librairies importées. Pour chercher dans toutes les librairies installées sur le système, on utilise ??
>??select
Installer et charger une librairie
modifierR contient de nombreuses librairies développées par la communauté. Pour installer une librairie, on utilise la fonction install.packages()
et pour la charger dans R, on utilise la fonction library()
. Par exemple, on peut installer et charger la librarie dplyr
.
install.packages("dplyr")
library("dplyr")
L'opérateur tube
modifierTraditionnellement, les arguments d'une fonction sont mis entre parenthèse après le nom de la fonction et on peut composer les fonctions en imbriquant des fonctions dans des fonctions. Par exemple :
> exp(5)
[1] 148.4132
> log(exp(5))
[1] 5
Lorsqu'on enchaîne de nombreuses fonctions, cette syntaxe peut poser des problèmes de lisibilité du code. L'opérateur tube %>%
(ou pipe) a été introduit par le développeur Stefan Milton Bache dans la librairie magrittr
. Cet opérateur est importé par défaut dans de nombreuses librairies comme dplyr
et permet de rendre le code plus lisible. Cet opérateur est très pratique lorsqu'on enchaîne plusieurs fonctions à la suite[1].
> 5 %>% exp()
[1] 148.4132
> 5 %>% exp() %>% log()
[1] 5
Notes et références
modifierVoir aussi
modifier- anglais : R for cats écrit par Scott Chamberlain