Les sous-ensembles de listes dans R
Après avoir parlé des sous-ensembles de vecteurs dans le langage R, c’est maintenant le tour des listes. En R, une liste peut contenir des types différents, au contraire du vecteur, limité à un seul type. Prenons par exemple la liste suivante :
À l’affichage, on remarque qu’il s’agit d’une liste grâce aux doubles crochets
([[]]
) :
Les éléments d’une liste peuvent être nommés. Suivant votre langage de prédilection, vous pouvez penser à une liste R comme à un hash, un dictionnaire, un tableau associatif, etc :
Que se passe-t-il si on utilise la même syntaxe qu’avec un vecteur pour extraire un élément d’une liste ?
L’idée c’est que l’opérateur []
renvoie le même type d’objet que l’objet sur
lequel il est appliqué. Donc utiliser []
sur une liste retourne une liste :
Pour aller chercher un élément, et pas une liste à un seul élément, il faut
utiliser l’opérateur double crochets ([[]]
) :
Lorsque les éléments sont nommés, on peut bien sûr utiliser leurs noms comme clé :
Nous pouvons extraire un sous-ensemble d’une liste en passant les indices à
l’opérateur crochet ([]
) :
Ou bien en lui donnant un vecteur de booléens :
En faisant la même chose avec l’opérateur double crochets ([[]]
) nous pouvons
extraire le nième élément d’un vecteur :
Ce qu’on peut décomposer ainsi, d’abord le 2ème élément de la liste :
Puis le premier élément du vecteur, la syntaxe commence à devenir drôle :
Question pour les connaisseurs du langage R : le code précédent me suggère qu’un vecteur
agit aussi comme une liste et que l’opérateur double crochet ([[]]
) n’est pas
limité aux listes. Par exemple :
Est-ce qu’il y a un intérêt à utiliser les double crochets avec des vecteurs ?