Comment effectuer une RECHERCHEV (similaire à Excel) dans R
La fonction RECHERCHEV dans Excel vous permet de rechercher une valeur dans un tableau en la faisant correspondre sur une colonne.
Par exemple, dans la feuille de calcul Excel suivante, nous pouvons rechercher le nom de l’équipe d’un joueur en utilisant RECHERCHEV pour faire correspondre le nom du joueur et renvoyer l’équipe du joueur :
Nous pouvons répliquer cette fonction en utilisant base R ou le package dplyr :
Utilisation de Base R :
merge(df1, df2, by="merge_column")
Utilisation de dplyr :
inner_join(df1, df2, by="merge_column")
Les exemples suivants montrent comment utiliser chacune de ces fonctions dans R pour répliquer la fonction RECHERCHEV à partir d’Excel.
RECHERCHEV utilisant Base R
Le code suivant montre comment exécuter une fonction similaire à RECHERCHEV en base R en utilisant la fonction merge() :
#create first data frame df1 <- data.frame(player=LETTERS[1:15], team=rep(c('Mavs', 'Lakers', 'Rockets'), each=5)) #create second data frame df2 <- data.frame(player=LETTERS[1:15], points=c(14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5)) #merge the two data frames merge(df1, df2, by="player") player team points 1 A Mavs 14 2 B Mavs 15 3 C Mavs 15 4 D Mavs 16 5 E Mavs 8 6 F Lakers 9 7 G Lakers 16 8 H Lakers 27 9 I Lakers 30 10 J Lakers 24 11 K Rockets 14 12 L Rockets 19 13 M Rockets 8 14 N Rockets 6 15 O Rockets 5
Notez que cela renvoie les mêmes résultats que la fonction RECHERCHEV de l’exemple d’introduction. Notez également que vous pouvez spécifier plusieurs colonnes à fusionner à l’aide de l’argument by .
RECHERCHEV utilisant dplyr
library(dplyr) #create first data frame df1 <- data.frame(player=LETTERS[1:15], team=rep(c('Mavs', 'Lakers', 'Rockets'), each=5)) #create second data frame df2 <- data.frame(player=LETTERS[1:15], points=c(14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5)) #merge the two data frames using inner_join inner_join(df1, df2, by="player") player team points 1 A Mavs 14 2 B Mavs 15 3 C Mavs 15 4 D Mavs 16 5 E Mavs 8 6 F Lakers 9 7 G Lakers 16 8 H Lakers 27 9 I Lakers 30 10 J Lakers 24 11 K Rockets 14 12 L Rockets 19 13 M Rockets 8 14 N Rockets 6 15 O Rockets 5
Notez que cela renvoie les mêmes résultats que la fonction RECHERCHEV dans Excel. Notez également que vous pouvez spécifier plusieurs colonnes à fusionner à l’aide de l’argument by .
De plus, si vous souhaitez que les non-correspondances soient affichées, vous pouvez utiliser la fonction left_join .
Ressources additionnelles
Comment calculer les sommes cumulées dans R
Comment standardiser les données dans R
Comment ajouter des lignes à un bloc de données dans R