« Premiers pas avec R » : différence entre les versions
mAucun résumé des modifications |
|||
Ligne 82 : | Ligne 82 : | ||
R est à la fois un langage de programmation et un outil d'analyse de données. Un utilisateur n'est pas obligé de savoir programmer, mais il doit être capable d'utiliser des fonctions. En gros, toutes les commandes à taper font appel à des fonctions. | R est à la fois un langage de programmation et un outil d'analyse de données. Un utilisateur n'est pas obligé de savoir programmer, mais il doit être capable d'utiliser des fonctions. En gros, toutes les commandes à taper font appel à des fonctions. | ||
La syntaxe de R ressemble superficiellement à celle des langages de type "C" et il s'agit d'une implémentation du langage [http://fr.wikipedia.org/wiki/S_%28langage_de_programmation%29 S] avec des extensions sémantiques dans la direction du langage Scheme | |||
=== Commentaires === | === Commentaires === |
Version du 19 novembre 2014 à 19:41
Premiers pas avec R | |
---|---|
▲ | |
▬▶ | |
⚐ | ☸ intermédiaire |
⚒ 2014/11/19 |
Introduction à l'environnement R
Voici comment l’environnement R se présente une fois l’application ouverte :
L’interface de l’environnement R se présente par une fenêtre contenant une barre de menus, une barre d’outils et la console R. Cette dernière permet d’introduire des commandes R (ou expressions).
L’interprétateur de R traduit et exécute les commandes introduites par l’utilisateur.
Le prompt de R est représenté par le symbole > . Ce caractère signifie que l’interprétateur de R attend l’introduction d’une commande de la part de l’utilisateur.
Remarquons que l’interface standard graphique de R paraît élémentaire et peu ergonomique. Plusieurs interfaces graphiques existent et peuvent être installées. Nous recommandons l’installation de R-Commander et R-Studio.
Voici une copie d'écran de R-Studio:
Installation de paquets
La plupart des paquets (extensions) de R sont disponibles à travers R. Exemple "statnet", un logiciels d'analyse de réseaux.
Install.packages("statnet")
- ou plus verbeux:peut-etre une
Install.packages("statnet", dependencies = TRUE)
Alternativement, si vous utilisez RStudio, cliquez sur l'onglet "Packages", puis "Install". Dans la fenêtre popup on peu ensuite indique le nom (ou le début du nom) du package...
Introduction à l'environnement R
Voici comment l’environnement R se présente une fois l’application ouverte :
L’interface de l’environnement R se présente par une fenêtre contenant une barre de menus, une barre d’outils et la console R. Cette dernière permet d’introduire des commandes R (ou expressions).
L’interprétateur de R traduit et exécute les commandes introduites par l’utilisateur.
Le prompt de R est représenté par le symbole > . Ce caractère signifie que l’interprétateur de R attend l’introduction d’une commande de la part de l’utilisateur.
Remarquons que l’interface standard graphique de R paraît élémentaire et peu ergonomique. Plusieurs interfaces graphiques existent et peuvent être installées. Nous recommandons l’installation de R-Commander et R-Studio.
Voici une copie d'écran de R-Studio:
Installation de paquets
La plupart des paquets (extensions) de R sont disponibles à travers R. Exemple "statnet", un logiciels d'analyse de réseaux.
Install.packages("statnet")
- ou plus verbeux:
Install.packages("statnet", dependencies = TRUE)
Alternativement, si vous utilisez RStudio, cliquez sur l'onglet "Packages", puis "Install". Dans la fenêtre popup on peu ensuite indique le nom (ou le début du nom) du package...
L'aide et la documentation de R
La fonction help.start() permet d’acceder à l’aide en ligne de R.
help.start()
La fonction help() ou l'abréviation ? permet d'obtenir de l’aide sur des commandes R spécifiques. Exemples :
help(help) # lance la documentation de la fonction « help » ?mean # lance la documentation de la fonction « mean »
La fonction help.search() ou l'abréviation??
permet de chercher la documentation
??tm # lance une recherche pour "tm"
La fonction help.library() liste les paquet.
Tapez help(help)
pour l'aide complète sur help
Syntaxe du langage R
R est à la fois un langage de programmation et un outil d'analyse de données. Un utilisateur n'est pas obligé de savoir programmer, mais il doit être capable d'utiliser des fonctions. En gros, toutes les commandes à taper font appel à des fonctions.
La syntaxe de R ressemble superficiellement à celle des langages de type "C" et il s'agit d'une implémentation du langage S avec des extensions sémantiques dans la direction du langage Scheme
Commentaires
Le symbole # permet d'ajouter des commentaires dans R. Tout ce qui est écrit après ce symbole n'est pas interprété par R. Prenons l’exemple suivant :
3 + 2 # Ceci est un commentaire... remarquez que R interprète ce qui vient avant le symbole # et nous donne le résultat de l'addition
Les commentaires sont très utiles en programmation pour décrire ce que le code fait.
Les objets de R
Les objets sont des entités qui sont stockées dans la mémoire de R. Les opérateurs d’assignation <- et -> permettent de créer et de stocker des objets dans la session de R courante. Exemples :
Poids <- 80 # L’objet Poids reçoit la valeur 80 80 -> Poids # L’objet Poids reçoit la valeur 80
Il est important de créer des objets afin de pouvoir les manipuler dans un deuxième moment. Par exemple :
a <- 32+10
b <- 10*21
c <- a + b
Ainsi, si l’utilisateur ne crée pas des objets ; R exécute la commande et affiche l'output à l’écran. Cela dit, ce dernier ne sera pas accessible pour des traitements ultérieurs. Exemple :
32+10
10*21
# Contrairement à l’exemple ci-dessus, ici il est impossible de calculer la somme entre (32+10) et (10*21).
Remarquons que si on ne crée pas des objets, R traite les données... mais ces résultats seront inaccessibles pour des traitements succéssifs.
Types et structures de données
Dans R, différents types d'objets peuvent être crées et traités. Voici les principaux objets :
a <- NULL # a est un objet nul, vide
b <- TRUE # b est un objet logique, booléen
c <- 101 # c et Poids sont des objets numériques
Poids <- 85
d <- "Bonjour à tout le monde!" # d est un objet alphanumérique (il contient une chaîne des caractères)
Pour connaître le mode (type) d'un objet, utilisez la commande mode(). Ci dessous montrée avec les résultats affichés par R.
> mode(Poids)
[1] "numeric"
> mode(a)
[1] "NULL"
> mode(b)
[1] "logical"
> mode(c)
[1] "numeric"
> mode(d)
[1] "character"
Pour afficher la valeur d'un objet, on peut utiliser la fonction print(). Altérnativement on peut introduire tout simplement le nom de l’objet à afficher :
print(Poids) Poids print(a) a
Pour lister les objets existant dans la session de R, utilisez la fonction ls() ou objects() :
ls() objects()
Enfin, on peut supprimer des objets avec la fonction rm() :
rm(Poids) # L'objet Poids est supprimé rm(a) # L’objet a est supprimé rm(b, c, d) # Les objets b, c et d sont supprimés
Dans les prochaines sections, nous présenterons les objets fondamentaux de R : les vecteurs, les matrices et les data-frames.
Les vecteurs
Un vecteur est un objet atomique représentant une "ligne" de données: tous ses éléments sont caractérisés par le même mode (ou type). Plusieurs méthodes peuvent être utilisées pour générer un vecteur numérique. Le plus important est le collecteur c() :
c(3, 4, 1, 3) # vecteur numérique de longueur 4
Altérnativement, vous pouvez utiliser l'opérateur :
, la fonction seq
et la fonction rep
:
1:15
seq(1,5, by = 0.2)
seq(1,5, length=10)
rep(1,10)
rep(1:3, times = 3)
rep(1:3, each = 3)
rep(1:3, times = 3, each = 2)
Pour générer un vecteur alphanumérique, utilisez le collecteur c() associé à des guillemets :
c('H', 'F', 'F', 'H', 'F')
Alternativement, vous pouvez utiliser la fonction rep()
:
rep('H', 20)
Pour générer un vecteur logique, utilisez les opérateurs >, >=, <, <=, ==, != :
10 == (2+1) # Donne FALSE car 10 est différent de 3 10 != 3 # Donne TRUE car 10 est différent de 3 10 >= 7 # Donne TRUE car 10 est supérieur égal à 7 1:10 == 6 # Donne un vecteur logique de longueur 10. La valeur TRUE apparaît quand la condition est satisfaite ; la valeur FALSE apparaît quand la condition n'est pas satisfaite
Rappelons que les opérateurs <- et -> permettent de sauvegarder des objets dans la mémoire de R. Créons un vecteur numérique Age et un vecteur alphanumérique Sexe à travers les commandes suivantes :
Age <- c(19, 31, 28, 18, 25, 23, 27, 20) Sexe <- c('F', 'H', 'F', 'H', 'H', 'F', 'H', 'F')
Affichons enfin les deux vecteurs avec les commandes :
Age Sexe
Pour sélectionner une partie d'un vecteur, utilisez l'opérateur de sélection [ ]. Etudiez les exemples suivants :
X = 10:20 X[3] # Donne le troisième élément du vecteur X X[c(6,9)] # Donne le sixième et neuvième élément du vecteur X X[3:5] # Donne le troisième quatrième et cinquième élément du vecteur X X[7:5] # Donne le septième, le sixième et le cinquième élément du vecteur X X[-c(4,7)] # Donne X sans le quatrième et septième élément du vecteur X X[-(1:3)] # Donne X sans les trois premiers éléments X[(X<15)] # Donne les éléments de X inférieur à 15 X[(X<17) & (X>13)] # Donne les éléments de X inférieurs à 17 ET supérieurs à 13 X[(X<13) | (X>17)] # Donne les éléments de X inférieurs à 13 OU supérieurs à 17
Les matrices
La matrice est un objet atomique et représente des tables à deux ou plusiers dimensions: tous ses éléments sont caractérisés par le même mode (ou type). Pour créer une matrice utilisez la fonction matrix() :
a1 <- matrix(1:6, ncol=2) # a1 est une matrice 3x2 a2 <- matrix(1:6, nrow=2) # a2 est une matrice 2x3 b1 <- matrix(1:6, ncol=2, byrow = TRUE) # b1 est une matrice 3x2 b2 <- matrix(1:6, nrow=2, byrow = TRUE) # b2 est une matrice 2x3
Pour sélectionner une partie d'une matrice, utilisez l'opérateur de sélection [ ] :
a1[3,2] # Donne l'élément de la matrice a1 qui se situe à la coordonnée [3,2] c'est-à-dire à la troisième ligne et deuxième colonne a1[2,] # Sélectionne la deuxième ligne de la matrice a1 a1[,2] # Sélectionne la deuxième colonne de la matrice a1 a1[-1,] # Matrice a1 sans sa première ligne a1[,-1] # Matrice a1 sans sa première colonne a1[-1,2] # Sélectionne la deuxième colonne de la matrice a1 en excluant la première ligne a2[,a2[1,]>2] # Sélectionne les colonnes de la matrice a2 pour lesquelles la valeur sur la première ligne est supérieure à 2
Les data frames
Le data-frame est un tableau des données à 2 dimensions dont les colonnes sont des variables de différents modes. Il s'agit de l'objet qu'il faut privilégier pour la recherche en sciences humaines. En effet, dans la plupart des cas, les bases des données sont composées par des variables qualitatives et quantitatives ! La fonction data.frame() permet de créer cet objet :
Age <- c(19, 31, 28, 18, 25, 23, 27, 20) Sexe <- c('F', 'H', 'F', 'H', 'H', 'F', 'H', 'F') Database <- data.frame(Age, Sexe) # Database est un data-frame comportant une variable qualitative et une variable quantitative Database
Pour sélectionner une variable particulière d’un data-frame, vous pouvez utiliser le symbole $ :
Database$Age Database$Sexe
De manière analogue aux matrices, vous pouvez sélectionner une partie d’un data-frame en utilisant les opérateurs de sélection [ ] :
Database[1,2] Database[1:4,2]
Les listes
Les listes représentent les structures de données les plus souples. On peut créer des listes dans des listes qui ne doivent pas avoir la même longeur.
my_list_simple = list ( c(1,2,3), c("a","b"))
donne:
> my_list_simple 1 [1] 1 2 3 2 [1] "a" "b"
my_list = list ( liste_une = c(1,2,3), liste_deux= c("a","b"))
donne:
> my_list $liste_une [1] 1 2 3 $liste_deux [1] "a" "b"
Utiliser des jeux des données de R
Les bases de données R
R permet d'enregistrer des données. Souvent, un paquet vient avec un jeu de données test que vous pouvez charger pour s'approprier les fonctionalitées documentées.
La fonction data() permet de récupérer des bases des données qui existent dans R afin de les manipuler, analyser, traiter dans un deuxième moment :
data() # Permet d'afficher les bases des données de R pouvant être récupérées data(iris) # Permet de charger en mémoire la base des données « iris ». help(iris) # Lance l’aide associée à la base des données « iris ». ls() # Remarquons l’existence de l’objet « iris », qui a été chargé en mémoire iris
La fonction de ces bases de données est strictement pédagogique : elles permettent à l’utilisateur de tester aisément les différentes fonctions et commandes de R sur différents bases des données. Par exemple, nous pouvons résumer l'information contenue dans l'objet iris avec la commande suivante :
summary(iris)
Dans les prochains chapitres, nous chargerons des jeux des données de R dans le but d'introduire les différentes fonctions de R.
Importer des bases des données
Les fonctions read.table() et read.csv() permettent de lire et importer des fichiers .txt et .csv.
R peut directement lire un fichier depuis un URL.
L'intégration de la fonction file.choose() permet à l'utilisateur de sélectionner un fichier.
# Le fichier data.txt est lu est stocké dans un nouveau objet R nommé Database
Database <- read.table("data.txt", header = TRUE)
# Le séparateur utilisé dans le fichier délimité est la virgule
Database <- read.table(file.choose(), header = TRUE, sep = ",")
# Fichier de type CSV. Le séparateur utilisé dans le fichier csv est le point-virgule
Database <- read.csv(file.choose(), header = TRUE, sep= ";")
# Fichier de type CSV depuis un serveur web (ce fichier contient des stats de google webmaster tools pour edutechwiki ...)
Database <- read.csv("http://tecfa.unige.ch/guides/R/data/edutechwiki-fr-gw-oct-6-2014.csv", header = TRUE, sep= ",")
# Fichier de type Excel qui contient une simple matrice, la première ligne contient les noms de variables
library(xlsx)
Database <- read.xlsx("c:/dks/myexcel.xlsx", 1)
Visualiser les tableaux:
- Dans RStudio, cliquer sur le variable (par ex. "Database" ci-dessus) dans le panneau Environment
- Sinon, utilisez: summary(DB), dim(Database), etc.
Voir aussi:
- Importing Data (Quick-R)