Een vert.zoeken doen (vergelijkbaar met excel) in r


Met de functie VERT.ZOEKEN in Excel kunt u een waarde in een tabel vinden door deze in een kolom te matchen.

In het volgende Excel-spreadsheet kunnen we bijvoorbeeld zoeken naar de teamnaam van een speler door VERT.ZOEKEN te gebruiken om de naam van de speler te matchen en het team van de speler terug te geven:

We kunnen deze functie repliceren met behulp van base R of het dplyr-pakket:

Basis R gebruiken:

 merge(df1, df2, by=" merge_column ")

dplyr gebruiken:

 inner_join(df1, df2, by=" merge_column ")

De volgende voorbeelden laten zien hoe u elk van deze functies in R kunt gebruiken om de functie VERT.ZOEKEN vanuit Excel te repliceren.

VERT.ZOEKEN met Base R

De volgende code laat zien hoe u een VLOOKUP-achtige functie uitvoert in basis R met behulp van de functie 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
3C Mavs 15
4D Mavs 16
5 E Mavs 8
6 F Lakers 9
7G Lakers 16
8 a.m. Lakers 27
9 I Lakers 30
10 J Lakers 24
11K Rockets 14
12L Rockets 19
13 M Rockets 8
14 N Rockets 6
15 O Rockets 5

Houd er rekening mee dat dit dezelfde resultaten oplevert als de functie VERT.ZOEKEN in het inleidende voorbeeld. Houd er ook rekening mee dat u meerdere kolommen kunt opgeven om samen te voegen met behulp van het argument by .

VERT.ZOEKEN met 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
3C Mavs 15
4D Mavs 16
5 E Mavs 8
6 F Lakers 9
7G Lakers 16
8 a.m. Lakers 27
9 I Lakers 30
10 J Lakers 24
11K Rockets 14
12L Rockets 19
13 M Rockets 8
14 N Rockets 6
15 O Rockets 5

Houd er rekening mee dat dit dezelfde resultaten oplevert als de functie VERT.ZOEKEN in Excel. Houd er ook rekening mee dat u meerdere kolommen kunt opgeven om samen te voegen met behulp van het argument by .

Als u bovendien wilt dat niet-overeenkomsten worden weergegeven, kunt u de functie left_join gebruiken.

Aanvullende bronnen

Hoe cumulatieve bedragen in R te berekenen
Hoe gegevens in R te standaardiseren
Rijen toevoegen aan een dataframe in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert