• 12 heures
  • Facile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/12/2020

Utilisez les listes

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Lors de vos analyses statistiques, vous risquez d’être confronté à la gestion de plusieurs données de types différents et potentiellement de longueurs différentes. Bien entendu, vous pourriez stocker tous ces éléments dans autant de vecteurs/variables/facteurs en fonction de vos besoins. Mais ne serait-il pas plus pratique d’avoir un seul objet permettant de stocker tous ces différents objets ? C’est ce à quoi correspondent les listes.

Une liste est un ensemble ordonné d’objets qui n’ont pas toujours le même mode ou la même longueur. Les différents objets sont appelés des composantes et peuvent être associés à un nom spécifique (un peu comme une variable). Les listes ont les deux attributs des vecteurs (length et mode) et l’attribut supplémentaire names. Les listes sont des objets indispensables, car toutes les fonctions qui retournent plusieurs objets le font sous la forme d’une liste.

Création de listes

La fonction de base pour créer une liste est la fonction  list   :

maliste <- list(c("A","B","C","A"),matrix(1:4,2,2))
maliste
# [[1]]
# [1] "A" "B" "C" "A"
# [[2]]
# [,1] [,2]
# [1,] 1 3
# [2,] 2 4

Cette liste contient bien 2 objets et c’est bien une liste, comme nous pouvons le voir ci-dessous :

length(maliste)
# [1] 2
mode(maliste)
# [1] "list"
is.list(maliste)
# [1] TRUE

Comme dit plus tôt, vous pouvez nommer les composantes de la liste, c’est-à-dire associer un nom à chaque objet de la liste pour pouvoir y accéder plus facilement via l’opérateur  $  . Ceci est faisable via la fonction  names  :

names(maliste) # pas de nom actuellement, la fonction retourne un NULL
# NULL
names(maliste) <- c("vec","mat")
names(maliste)
# [1] "vec" "mat"

Il est également possible de créer une liste en partant d’une liste vide.

li <- list()
li
# list()
li[[1]] <- 1:4
li
# [[1]]
# [1] 1 2 3 4
li$nouv <- matrix(1:4,nrow=2)
li
# [[1]]
# [1] 1 2 3 4
# $nouv
# [,1] [,2]
# [1,] 1 3
# [2,] 2 4

Comme la première composante n’a pas de nom, on retrouve  [[1]]  dans l’affichage de la liste puis la composante  nouv  .

names(li)
# [1] "" "nouv"

et les attributs de cette liste sont les noms.

Fonctions utiles applicables sur des listes

Comme les objets d’une liste n’ont pas forcément le même type, il n’est pas possible de faire des calculs entre plusieurs listes. Néanmoins, il existe quelques fonctions valides et utiles :

  • lapply  applique une fonction (comme la moyenne, la variance, etc.) successivement à chacune des composantes.

  • unlist(maliste)  crée un seul vecteur contenant tous les éléments de la liste. Les éléments d’un vecteur étant nécessairement du même mode, il faut faire attention à la conversion automatique pratiquée par R.

  • c(liste1,liste2)  concatène deux listes.

En résumé

  • Une liste est un ensemble ordonné d’objets qui n’ont pas toujours le même mode ou la même longueur.

  • Il est possible d’associer un nom à un objet spécifique de la liste.

  • Plusieurs fonctions permettent d’effectuer une action sur chaque élément d’une liste.

Dans le prochain chapitre, nous verrons un peu plus en détails comment utiliser un des objets phare du langage R : les dataframes.

Exemple de certificat de réussite
Exemple de certificat de réussite