Dplyr을 사용하여 여러 데이터 프레임을 결합하는 방법


종종 R에서 여러 데이터 프레임을 결합하는 데 관심이 있을 수 있습니다. 다행히 dplyr 패키지의 left_join() 함수를 사용하면 이 작업을 쉽게 수행할 수 있습니다 .

 library(dplyr)

예를 들어 다음과 같은 세 가지 데이터 프레임이 있다고 가정합니다.

 #create data frame
df1 <- data.frame(a = c('a', 'b', 'c', 'd', 'e', 'f'),
                  b = c(12, 14, 14, 18, 22, 23))

df2 <- data.frame(a = c('a', 'a', 'a', 'b', 'b', 'b'),
                  c = c(23, 24, 33, 34, 37, 41))

df3 <- data.frame(a = c('d', 'e', 'f', 'g', 'h', 'i'),
                  d = c(23, 24, 33, 34, 37, 41))

세 개의 데이터 프레임을 함께 결합하려면 두 개의 왼쪽 조인을 차례로 수행하면 됩니다.

 #join the three data frames
df1 %>%
    left_join (df2, by='a') %>%
    left_join (df3, by='a')

   abcd
1 to 12 23 NA
2 to 12 24 NA
3 to 12 33 NA
4 b 14 34 NA
5 b 14 37 NA
6 b 14 41 NA
7 c 14 NA NA
8 d 18 NA 23
9th 22 NA 24
10 f 23 NA 33

이 조인의 결과를 데이터 프레임으로 저장할 수도 있습니다.

 #join the three data frames and save result as new data frame named all_data
all_data <- df1 %>%
              left_join (df2, by='a') %>%
              left_join (df3, by='a')

#view summary of resulting data frame
glimpse(all_data)

Comments: 10
Variables: 4
$ a <chr> "a", "a", "a", "b", "b", "b", "c", "d", "e", "f"
$b<dbl> 12, 12, 12, 14, 14, 14, 14, 18, 22, 23
$ c <dbl> 23, 24, 33, 34, 37, 41, NA, NA, NA, NA
$ d <dbl> NA, NA, NA, NA, NA, NA, NA, 23, 24, 33

추가 리소스

R에서 행을 필터링하는 방법
R에서 중복 줄을 제거하는 방법
R에서 데이터를 그룹화하고 요약하는 방법

의견을 추가하다

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