Как выполнить ВПР (аналогично Excel) в R

Как выполнить ВПР (аналогично Excel) в R

Функция ВПР в Excel позволяет искать значение в таблице, сопоставляя столбец.

Например, на следующем листе Excel мы можем найти имя команды игрока, используя ВПР, чтобы сопоставить имя игрока и вернуть команду игрока:

Мы можем воспроизвести эту функцию, используя базу R или пакет dplyr:

Использование базы R:

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

Использование dplyr:

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

В следующих примерах показано, как использовать каждую из этих функций в R для репликации функции ВПР из Excel.

ВПР с использованием базы R

В следующем коде показано, как выполнить функцию, аналогичную ВПР в базе R, с помощью функции 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

Обратите внимание, что она возвращает те же результаты, что и функция ВПР из вводного примера. Также обратите внимание, что вы можете указать несколько столбцов для объединения с помощью аргумента by .

ВПР Использование 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

Обратите внимание, что это возвращает те же результаты, что и функция ВПР в Excel. Также обратите внимание, что вы можете указать несколько столбцов для объединения с помощью аргумента by .

Кроме того, если вы хотите, чтобы отображались несовпадения, вы можете вместо этого использовать функцию left_join .

Дополнительные ресурсы

Как рассчитать кумулятивные суммы в R
Как стандартизировать данные в R
Как добавить строки во фрейм данных в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.