Jak wykonać wyszukaj.pionowo (podobnie jak w excelu) w r


Funkcja WYSZUKAJ.PIONOWO w programie Excel umożliwia znalezienie wartości w tabeli poprzez dopasowanie jej do kolumny.

Na przykład w poniższym arkuszu kalkulacyjnym programu Excel możemy wyszukać nazwę drużyny gracza, korzystając z funkcji WYSZUKAJ.PIONOWO, aby dopasować nazwę gracza i zwrócić drużynę gracza:

Możemy zreplikować tę funkcję za pomocą podstawowego R lub pakietu dplyr:

Korzystanie z bazy R:

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

Używając dplyra:

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

Poniższe przykłady pokazują, jak używać każdej z tych funkcji w języku R do replikowania funkcji WYSZUKAJ.PIONOWO z programu Excel.

WYSZUKAJ.PIONOWO przy użyciu Base R

Poniższy kod pokazuje, jak wykonać funkcję podobną do WYSZUKAJ.PIONOWO w bazowym R przy użyciu funkcji 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

Należy pamiętać, że zwraca to takie same wyniki, jak funkcja WYSZUKAJ.PIONOWO w przykładzie wprowadzającym. Pamiętaj również, że możesz określić wiele kolumn do połączenia za pomocą argumentu by .

WYSZUKAJ PIONOWO za pomocą 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

Należy pamiętać, że zwraca to takie same wyniki, jak funkcja WYSZUKAJ.PIONOWO w programie Excel. Pamiętaj również, że możesz określić wiele kolumn do połączenia za pomocą argumentu by .

Dodatkowo, jeśli chcesz, aby wyświetlały się niedopasowania, możesz użyć funkcji left_join .

Dodatkowe zasoby

Jak obliczyć sumy skumulowane w R
Jak standaryzować dane w R
Jak dodać wiersze do ramki danych w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *