Як виконати vlookup (подібно до excel) у r
Функція VLOOKUP в Excel дозволяє знайти значення в таблиці, зіставивши його в стовпці.
Наприклад, у наведеній нижче електронній таблиці Excel ми можемо шукати назву команди гравця за допомогою VLOOKUP, щоб відповідати імені гравця та повернути команду гравця:
Ми можемо відтворити цю функцію за допомогою base R або пакета dplyr:
Використання Base R:
merge(df1, df2, by=" merge_column ")
Використання dplyr:
inner_join(df1, df2, by=" merge_column ")
У наведених нижче прикладах показано, як використовувати кожну з цих функцій у R для копіювання функції VLOOKUP із Excel.
VLOOKUP з використанням Base R
Наступний код показує, як виконати функцію, подібну до VLOOKUP, у базовому 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 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
Зауважте, що це повертає ті самі результати, що й функція VLOOKUP у вступному прикладі. Також зауважте, що ви можете вказати кілька стовпців для об’єднання за допомогою аргументу by .
VLOOKUP за допомогою 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
Зауважте, що це повертає ті самі результати, що й функція VLOOKUP в Excel. Також зауважте, що ви можете вказати кілька стовпців для об’єднання за допомогою аргументу by .
Крім того, якщо ви хочете, щоб відображалися незбіги, ви можете використати функцію left_join .
Додаткові ресурси
Як обчислити кумулятивні суми в R
Як стандартизувати дані в R
Як додати рядки до кадру даних у R