Trouver l'index d'un élément dans un vecteur R

Manav Narula 30 janvier 2023
  1. Utilisez la fonction which() pour trouver l’index d’un élément dans R
  2. Utilisez la fonction match() pour trouver l’index d’un élément dans R
Trouver l'index d'un élément dans un vecteur R

Un vecteur est l’une des structures de données fondamentales dans R. Il est utilisé pour stocker des éléments dans une séquence, mais contrairement aux listes, tous les éléments d’un vecteur doivent être du même type de données.

Chaque élément du vecteur a une position ou un index particulier. Il est possible de connaître l’index de n’importe quel élément en utilisant des fonctions intégrées dans R comme which(), et match().

Dans ce tutoriel, nous trouverons l’index des éléments 7 et 8 du vecteur suivant :

x <- c(5,6,8,9,7,5,7,8)

Utilisez la fonction which() pour trouver l’index d’un élément dans R

La fonction which() renvoie un vecteur avec l’index (ou les index) de l’élément qui correspond au vecteur logique (dans ce cas ==).

Par exemple :

x <- c(5,6,8,9,7,5,7,8)
which(x == 7)
[1] 5 7

Remarquez que puisque 7 est présent deux fois dans le vecteur, ses deux positions sont retournées. Si nous voulons le premier index de 7, nous pouvons simplement le faire comme indiqué ci-dessous :

which(x == 7)[1]
[1] 5

Nous pouvons également utiliser la fonction which() pour trouver les index de plusieurs éléments en utilisant le paramètre %in%, qui renvoie un vecteur avec une valeur True pour chaque élément qui correspond.

which(x %in% c(7,8))
[1] 3 5 7 8

Comme vous pouvez le voir, toutes les positions de 7 et 8 sont retournées.

Utilisez la fonction match() pour trouver l’index d’un élément dans R

La fonction match() est très similaire à la fonction which(). Elle renvoie un vecteur avec le premier indice (si l’élément est à plus d’une position comme dans notre cas) de l’élément et est considérée comme plus rapide que la fonction which().

x <- c(5,6,8,9,7,5,7,8)
match(7,x)
[1] 5

Nous pouvons également l’utiliser pour trouver le premier indice de plusieurs éléments, comme indiqué ci-dessous :

x <- c(5,6,8,9,7,5,7,8)
match(c(7,8),x)
[1] 5 3

Notez que seules les premières positions de 7 et 8 sont renvoyées par la fonction match(). C’est pourquoi la fonction match() est considérée comme la plus rapide des deux méthodes pour les situations où seul le premier index est requis.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - R Vector