• 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

Opérez une sélection dans une liste

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

Pour extraire une composante de la liste, on peut toujours le faire en indiquant la position de l’élément que l’on souhaite extraire.

Sélection par position

Les  [[ ]]  permettent de retourner l’élément de la liste.

Il faut faire la distinction entre :

  •  maliste[1]  qui retourne une sous-liste composée de l’élément 1 de la liste initiale. length(maliste[1])  vaut donc 1. 

  • maliste[[1]]  qui retourne l’objet R qui compose l’élément 1 de la liste.length(maliste[[1]])  retourne la longueur de l’objet stocké en premier dans la liste  maliste.

Commençons par créer une liste de 4 éléments.

x <- c("a","a","b","c")
X <- matrix(1:8,ncol=4)
y <- c(T,T,T,F,F)
z <- matrix(c("A","B","C","D"),ncol=2)
maliste <- list(comp1=x,comp2=X,comp3=y,element4=z)
maliste
# $comp1
# [1] "a" "a" "b" "c"
#
# $comp2
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
#
# $comp3
# [1] TRUE TRUE TRUE FALSE FALSE
#
# $element4
# [,1] [,2]
# [1,] "A" "C"
# [2,] "B" "D"

Voyons à présent les différences notables entre la sélection avec l’opérateur  [ ]  et celle avec l’opérateur  [[ ]]  au sein de notre liste de 4 objets :

maliste[2] #retourne une liste
# $comp2
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
length(maliste[2])
# [1] 1
maliste[[2]] #extrait le second élément de la liste
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
length(maliste[[2]])
# [1] 8
# puisqu’il y a 8 éléments dans la composante 2 de maliste.

On peut aussi utiliser le nom de l’élément s’il existe.

Sélection par nom

Lorsque vous souhaitez sélectionner au sein d’une liste en utilisant directement le nom d’un des objets qu’elle contient, vous pouvez l’écrire de deux façons : soit de façon similaire à une sélection par position en précisant le nom entre quotes, soit via l’opérateur  $. Par exemple :

maliste["comp2"]
# $comp2
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
maliste[["comp2"]]
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
maliste$comp2
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8

Il est possible d’extraire plusieurs éléments d’une même liste, ce qui crée une sous-liste. Noter qu’ici l’on utilise  [ ]  et non  [[ ]]  :

maliste[c(1,3)]
# $comp1
# [1] "a" "a" "b" "c"
#
# $comp3
# [1] TRUE TRUE TRUE FALSE FALSE

En résumé

Il existe différentes façons de sélectionner au sein d’une liste :

  • soit c’est une sélection par position. Cependant, il faut bien être vigilant à la différence entre une sélection via  [ ]  qui renverra une sous-liste de la liste originale et une sélection via  [[ ]]  qui renverra l’objet stocké dans la liste à laquelle on essaie d’accéder ;

  • soit c’est une sélection par nom, où l’on peut accéder à une sous-liste ou un objet spécifique en utilisant le nom qui y est associé au sein de la liste.

Dans le prochain chapitre, nous verrons un peu plus en détails comment sélectionner au sein d'un dataframe.

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