Matière : TP Analyse des données avec le langage R ISIMA
Enseignant : Nesrine Blel & Melek Zaouali 1er semestre
Niveau : LGLSI3 Année 2023/2024
TP3 : Manipulations simples sur les listes et les data frames
1/ objectifs:
- Connaître les listes
- Connaître les tableaux de données
2/ Les listes:
Une liste se crée tout simplement avec la fonction list :
Une liste est un ensemble d’objets, chaque élément d’une liste
pouvant avoir ses propres dimensions.
Dans notre exemple précédent, nous avons créé une liste L1
composée de deux éléments : un vecteur d’entiers de longueur 5 et un
vecteur textuel de longueur 1. La longueur d’une liste correspond aux
nombres d’éléments qu’elle contient et s’obtient avec length :
Comme les vecteurs, une liste peut être nommées et les noms des
éléments d’une liste accessibles avec names :
1
Tapez:
À votre avis, quelle est la longueur de cette nouvelle liste L?
Si nous appelons à la fonction str qui permet de visualiser la
structure d’un objet, que voyez vous?
Une liste peut contenir tout type d’objets, y compris d’autres listes.
Pour combiner les éléments d’une liste, il faut utiliser la fonction
append :
Tapez:
l’indexation: Les crochets simples ( [ ] ) fonctionnent comme pour
les vecteurs. On peut utiliser à la fois l’indexation par position,
l’indexation par nom et l’indexation par condition.
a) Afficher L
b) Afficher les listes d’indice 1, 3 et 4 de L
c) Afficher les listes d’indice 1, 2 et 5 de L par l’indexation par
condition (TRUE/False)
Supposons que je souhaite calculer la moyenne des valeurs du
premier élément de ma liste. Essayons la commande suivante :
2
Nous obtenons un message d’erreur. En effet, R ne sait pas calculer
une moyenne à partir d’une liste. Ce qu’il lui faut, c’est un vecteur de
valeurs numériques. Autrement dit, ce que nous cherchons à obtenir,
c'est le contenu même du premier élément de notre liste et non une
liste à un seul élément.
C’est ici que les doubles crochets ( [[ ]] ) vont rentrer en jeu.
Nous pouvons aussi tester l’indexation par nom.
Heureusement, un nouvel acteur entre en scène : le symbole
dollar ( $ ). C’est un raccourci des doubles crochets pour l’indexation
par nom. Que l’on utilise ainsi :
Les écritures L$mois et L[["mois"]] sont équivalentes.
Attention! Cela ne fonctionne que pour l’indexation par nom.
L’assignation par indexation fonctionne également avec les doubles
crochets ou le signe dollar :
3
3/ Tableaux de données (dataFrame) :
Dans R, les tableaux de données sont tout simplement des listes avec
quelques propriétés spécifiques :
• les tableaux de données ne peuvent contenir que des vecteurs ;
• tous les vecteurs d’un tableau de données ont la même longueur ;
• tous les éléments d’un tableau de données sont nommés et ont
chacun un nom unique
On peut créer un tableau de données avec la fonction [Link] :
La fonction [Link] a un gros défaut : si on ne désactive pas
l’option stringsAsFactors elle transforme les chaînes de caractères, ici
la variable sexe en facteurs.
Un DataFrame étant une liste, la fonction length renverra le nombre
d’éléments de la liste, donc dans le cas présent le nombre de variables
et names leurs noms :
Comme tous les éléments d’un tableau de données ont la même
longueur, cet objet peut être vu comme bidimensionnel. Les fonctions
nrow , ncol et dim donnent respectivement le nombre de lignes, le
4
nombre de colonnes et les dimensions de notre tableau
De plus, tout comme les colonnes ont un nom, il est aussi possible de
nommer les lignes avec [Link] :
Indexation : Les tableaux de données étant des listes, nous pouvons
donc utiliser les crochets simples ( [ ] ), les crochets doubles ( [[ ]] ) et
le symbole dollar ( $ ) pour extraire des parties de notre tableau, de la
même manière que pour n’importe quelle liste.
Tapez:
Il est possible d’extraire des données sur deux dimensions, à savoir un
premier critère portant sur les lignes et un second portant sur les
colonnes. Pour cela, nous utiliserons les crochets simples ( [ ] ) en
séparant nos deux critères par une virgule ( , ) par exemple:
5
a) Afficher la troisième ligne de la seconde colonne(l’âge de
Michael) avec l’indexation par nom
b) Afficher le même résultat avec l’indexation par condition
c) Afficher le résultat avec un mélange de deux types
d’indexation
Tapez:
Interpréter les résultats.
En résumé
❖ Les Listes
• Les listes sont des objets unidimensionnels pouvant contenir tout type d’objet, y compris
d’autres listes.
• Elles ont une longueur qu’on obtient avec length .
• On crée une liste avec list et on peut fusionner des listes avec append .
• Tout comme les vecteurs, les listes peuvent être nommées et les noms des éléments
s’obtiennent avec names .
• Les crochets simples ( [ ] ) permettent de sélectionner les éléments d’une liste, en utilisant
l’indexation par position, l’indexation par nom ou l’indexation par condition. Cela renvoie
toujours à une autre liste.
• Les doubles crochets ( [[]] ) renvoient directement le contenu d’un élément de la liste qu’on
aura sélectionné par position ou par nom.
• Le symbole $ est un raccourci pour facilement sélectionner un élément par son nom,
liste$nom étant équivalent à liste[["nom"]] .
6
❖ Les Tableaux de données (dataFrame)
• Les tableaux de données sont des listes avec des propriétés particulières
• On peut créer un tableau de données avec [Link] .
• Les tableaux de données correspondent aux fichiers de données qu’on utilise usuellement
dans d’autres logiciels de statistiques : les variables sont représentées en colonnes et les
observations en lignes.
• Ce sont des objets bidimensionnels : ncol renvoie le nombre de colonnes et nrow le nombre
de lignes.
• Les doubles crochets ( [[]] ) et le symbole dollar ( $ ) fonctionnent comme pour les listes et
permettent d’accéder aux variables.
• Il est possible d’utiliser des coordonnées bidimensionnelles avec les crochets simples ( [] )
en indiquant un critère sur les lignes puis un critère sur les colonnes, séparés par une virgule.