Fonction match() de R - Correspondance d'éléments
La fonction match() de R est utilisée pour trouver la position de la première occurrence d'éléments d'un vecteur dans un autre vecteur.
match() est similaire à l'opérateur %in%, mais renvoie des positions plutôt que des valeurs logiques.
La syntaxe de la fonction match() est la suivante :
match(x, table, nomatch = NA_integer_)
Description des paramètres :
xLe vecteur des éléments à rechercher.
tableLe vecteur cible dans lequel effectuer la recherche.
nomatchLa valeur renvoyée lorsque la correspondance échoue, par défaut NA.
Exemples
# Trouver les positions des éléments
fruits <- c("pomme", "banane", "orange", "grape", "watermelon")
wanted <- c("banana", "watermelon", "lemon")
# Trouver les positions des éléments de wanted dans fruits
positions <- match(wanted, fruits)
print("Résultats correspondants :")
print(positions)
# Recherche correspondante : utiliser positions pour obtenir les valeurs réelles
print("Fruits trouvés :")
print(fruits[positions[!is.na(positions)]])
fruits <- c("pomme", "banane", "orange", "grape", "watermelon")
wanted <- c("banana", "watermelon", "lemon")
# Trouver les positions des éléments de wanted dans fruits
positions <- match(wanted, fruits)
print("Résultats correspondants :")
print(positions)
# Recherche correspondante : utiliser positions pour obtenir les valeurs réelles
print("Fruits trouvés :")
print(fruits[positions[!is.na(positions)]])
L'exécution du code ci-dessus produit la sortie suivante :
[1] "匹配结果:" [1] 2 5 NA [1] "找到的水果:" [1] "香蕉" "西瓜"
match() est souvent utilisé pour réordonner un autre jeu de données en fonction d'un vecteur :
Exemples
# Tableau des notes des étudiants
student_names <- c("Zhang San", "Li Si", "Wang Wu", "Zhao Liu")
scores <- c(88, 92, 76, 85)
names(scores) <- student_names
# Organiser les notes dans un ordre spécifique
wanted_order <- c("Wang Wu", "Zhao Liu", "Zhang San", "Li Si")
idx <- match(wanted_order, names(scores))
print("Notes classées dans l'ordre spécifié :")
print(scores[idx])
student_names <- c("Zhang San", "Li Si", "Wang Wu", "Zhao Liu")
scores <- c(88, 92, 76, 85)
names(scores) <- student_names
# Organiser les notes dans un ordre spécifique
wanted_order <- c("Wang Wu", "Zhao Liu", "Zhang San", "Li Si")
idx <- match(wanted_order, names(scores))
print("Notes classées dans l'ordre spécifié :")
print(scores[idx])
L'exécution du code ci-dessus produit la sortie suivante :
[1] "按指定顺序排列的成绩:" 王五 赵六 张三 李四 76 85 88 92Autres extensions
Exemples du langage R