R에서 vlookup(excel과 유사)을 수행하는 방법


Excel의 VLOOKUP 함수를 사용하면 열에서 일치하는 값을 테이블에서 찾을 수 있습니다.

예를 들어 다음 Excel 스프레드시트에서는 VLOOKUP을 사용하여 플레이어의 이름을 일치시키고 플레이어의 팀을 반환함으로써 플레이어의 팀 이름을 검색할 수 있습니다.

기본 R 또는 dplyr 패키지를 사용하여 이 기능을 복제할 수 있습니다.

기본 R 사용:

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

dplyr 사용:

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

다음 예에서는 R에서 이러한 각 함수를 사용하여 Excel의 VLOOKUP 함수를 복제하는 방법을 보여줍니다.

Base R을 사용하는 VLOOKUP

다음 코드는 merge() 함수를 사용하여 기본 R에서 VLOOKUP과 유사한 함수를 수행하는 방법을 보여줍니다.

 #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 인수를 사용하여 병합할 여러 열을 지정할 수도 있습니다.

dplyr을 사용하는 VLOOKUP

 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

이는 Excel의 VLOOKUP 함수와 동일한 결과를 반환합니다. 또한 by 인수를 사용하여 병합할 여러 열을 지정할 수도 있습니다.

또한 일치하지 않는 항목을 표시하려면 left_join 함수를 사용할 수 있습니다.

추가 리소스

R에서 누적 합계를 계산하는 방법
R에서 데이터를 표준화하는 방법
R의 데이터 프레임에 행을 추가하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다