해당 포스트는 네이버지식인을 통해 질문 받은 "3개 이상의 데이터 프레임을 병합하는 방법"에 대한 답변을 공유하는 글입니다.
질문
**
R프로그래밍을 배우고 있는 학생인데 지금 데이터프레임병합을 하고 있습니다.
3개이상의 데이터프레임을 병합하려면 어떤 함수를 써야하나요
검색을 해도 2개의 데이터 프레임을 병합하는 방법만 나옵니다....
도와주시면 감사하겠습니다.**
풀이
R에서 3개 이상의 데이터 프레임(Data Frame)을 병합하는 방법은 크게 2가지로 나누어 집니다.
merge()
내장 함수 사용- dplyr 패키지의
left_join()
사용
아래에서는 샘플 데이터를 만들고 두 함수를 사용하여 병합하는 방법에 대해 설명합니다.
데이터 생성
아래는 설명에 사용할 3개의 데이터 프레임을 생성하는 코드입니다.
# 데이터프레임 1
df1 <- data.frame(
ID = c(1, 2, 3),
Name = c("John", "Alice", "Bob"),
Age = c(25, 30, 35)
)
# 데이터프레임 2
df2 <- data.frame(
ID = c(3, 4, 5),
Gender = c("M", "F", "M"),
Salary = c(50000, 55000, 60000)
)
# 데이터프레임 3
df3 <- data.frame(
ID = c(1, 2, 3, 4, 5),
City = c("New York", "Los Angeles", "Chicago", "Houston", "Seoul"),
Country = c("USA", "USA", "USA", "USA", "KOR")
)
> df1
ID Name Age
1 1 John 25
2 2 Alice 30
3 3 Bob 35
> df2
ID Gender Salary
1 3 M 50000
2 4 F 55000
3 5 M 60000
> df3
ID City Country
1 1 New York USA
2 2 Los Angeles USA
3 3 Chicago USA
4 4 Houston USA
5 5 Seoul KOR
1. merge() 함수 사용
먼저, 내장 함수인 merge()
함수만을 사용하여 데이터를 병합하는 코드입니다. by=
인자를 사용하여 기준이 되는 열을 지정하여 데이터 프레임을 병합합니다.
# ID를 기준으로 데이터프레임 병합
merged_df <- merge(df1, df2, by = "ID")
merged_df <- merge(merged_df, df3, by = "ID")
> merged_df
ID Name Age Gender Salary City Country
1 3 Bob 35 M 50000 Chicago USA
2. merge() 함수와 파이프 연산자(%>%) 사용
merge()
함수와 %>%
파이프 연산자를 함께 사용하여 데이터 프레임을 병합하는 코드입니다. %>%
파이프 연산자를 사용하여 데이터 프레임을 연속적으로 처리하고 병합할 수 있습니다.
library(dplyr)
merged_df <- df1 %>%
merge(df2, by = "ID") %>%
merge(df3, by = "ID")
> merged_df
ID Name Age Gender Salary City Country
1 3 Bob 35 M 50000 Chicago USA
3. left_join()함수와 파이프 연산자(%>%) 사용
left_join()
함수와 %>%
파이프 연산자를 함께 사용하여 데이터 프레임을 병합하는 코드입니다. left_join()
함수는 왼쪽 데이터 프레임을 기준으로 오른쪽 데이터 프레임을 병합하는 함수로, %>%
파이프 연산자를 사용하여 데이터 프레임을 연속적으로 처리하고 병합할 수 있습니다.
library(dplyr)
merged_df <- df1 %>%
left_join(df2, by = "ID") %>%
left_join(df3, by = "ID")
> merged_df
ID Name Age Gender Salary City Country
1 1 John 25 NA New York USA
2 2 Alice 30 NA Los Angeles USA
3 3 Bob 35 M 50000 Chicago USA
마무리
이번 포스트에서는 3개 이상 데이터 프레임 병합 방법에 대해 설명하였습니다. 위 3가지 코드는 다양한 방법으로 데이터 프레임을 병합할 수 있음을 보여주고 있으며, 데이터 프레임 병합을 할 때에는 병합 기준 열을 정확하게 지정하여 원하는 결과를 얻을 수 있도록 주의해야 합니다.
관련 링크
[1] 네이버 지식인
[2] [R] mutate 함수 뜯어보기 (feat. dplyr)
[3] [R] R Style Guide by Hadley Wickham - 4. Pipes