Comment utiliser la fonction match() dans R (avec exemples)



La fonction match() dans R renvoie la position de la première correspondance entre deux objets.

Cette fonction utilise la syntaxe de base suivante :

match(object1, object2)

Les exemples suivants montrent comment utiliser cette fonction dans différents scénarios.

Exemple 1 : faire correspondre une valeur dans un vecteur

Le code suivant montre comment utiliser la fonction match() pour trouver la première occurrence d’une valeur spécifique dans un vecteur :

#define value to look for in vector
value <- 10

#define vector of values
vector1 <- c(8, 9, 1, 10, 13, 15)

#find first occurrence of 10
match(value, vector1)

[1] 4

Cela nous indique que la valeur 10 apparaît d’abord en 4ème position du vecteur.

Notez que si plusieurs valeurs correspondent, seule la position de la première correspondance sera renvoyée.

Par exemple, le vecteur suivant a deux valeurs égales à 10 mais seule la position des 10 premiers est renvoyée :

#define value to look for in vector
value <- 10

#define vector of values with multiple '10' values
vector1 <- c(8, 9, 1, 10, 10, 10)

#find first occurrence of 10
match(value, vector1)

[1] 4

La valeur 10 apparaît aux positions 4, 5 et 6, mais seule la position 4 est renvoyée.

Exemple 2 : faire correspondre les valeurs dans deux vecteurs

Le code suivant montre comment utiliser la fonction match() pour rechercher la première occurrence de valeurs dans un vecteur dans un autre vecteur :

#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)

#find first occurrence of values in vector1 within vector2
match(vector1, vector2)

[1]  3 NA NA NA NA  2

Voici comment interpréter le résultat :

  • La première occurrence de la valeur 1 dans vector1 se produit en position 3 de vector2.
  • La valeur 2 dans vector1 n’apparaît jamais dans vector2.
  • La valeur 3 dans vector1 n’apparaît jamais dans vector2.
  • La valeur 4 dans vector1 n’apparaît jamais dans vector2.
  • La valeur 5 dans vector1 n’apparaît jamais dans vector2.
  • La première occurrence de la valeur 6 dans vector1 se produit en position 2 de vector2.

Notez que nous pouvons également spécifier une valeur différente à utiliser dans les cas où il n’y a pas de correspondance.

Par exemple, nous pourrions renvoyer une valeur de 0 au lieu de NA :

#define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)

#find first occurrence of values in vector1 within vector2
match(vector1, vector2, nomatch=0)

[1] 3 0 0 0 0 2

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment utiliser la fonction summary() dans R
Comment utiliser la fonction replicate() dans R
Comment utiliser la fonction gsub() dans R
Comment utiliser la fonction par() dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *