본문 바로가기
R 주제/R 기초 및 통계 강의

[R강의] 137. 데이터프레임 결합의 끝판왕 (merge)

by 만다린망고 2023. 1. 31.
반응형

merge 함수는 두 데이터프레임을 합쳐주는 함수입니다. rbind 보다는 cbind 와 유사한데요. cbind와 구벌되는 점은 특정 열을 기준으로 하여 합친다는 것입니다. 총 네가지 방법이 있는데요.  그림을 보면 쉽게 이해가 되실겁니다.

 

데이터프레임을 가지고 직접 해봅시다. 사용할 두 데이터는 아래와 같습니다. 

 

A=data.frame(id=c(1,2,3),weight=c(78,88,98),height=c(170,175,180))

B=data.frame(id=c(2,3,4),math=c(75,85,85),eng=c(100,85,60))

 

콘솔창에 입력해보면 아래와 같습니다. 

 

> A
  id weight height
1  1     78    170
2  2     88    175
3  3     98    180
> B
  id math eng
1  2   75 100
2  3   85  85
3  4   85  60

 

1) Inner Join

Inner Join 은 공통된 부분을 id를 기준으로 합치는 방법입니다. 아래 그림과 같습니다. 

 

데이터프레임 A와 B에 적용해봅시다. 

 

> merge(A,B,by='id')
  id weight height math eng
1  2     88    175   75 100
2  3     98    180   85  85

 

2) Outer Join

Outer Join 은 모든 행을 유지하며 합치는 방법입니다. 아래 그림과 같습니다. 

 

 

데이터프레임 A와 B에 적용해봅시다. 

 

> merge(A,B,by='id',all=TRUE)
  id weight height math eng
1  1     78    170   NA  NA
2  2     88    175   75 100
3  3     98    180   85  85
4  4     NA     NA   85  60

 

3) Left Outer Join

Left Outer Join은 좌측 데이터프레임의 모든 행을 유지하며 결합합니다. 아래 그림과 같습니다. 

 

데이터프레임 A와 B에 적용해봅시다. 

 

> merge(A,B,by='id',all.x=TRUE)
  id weight height math eng
1  1     78    170   NA  NA
2  2     88    175   75 100
3  3     98    180   85  85

 

4) Right Outer Join

Left Outer Join은 우측 데이터프레임의 모든 행을 유지하며 결합합니다. 아래 그림과 같습니다. 

 

데이터프레임 A와 B에 적용해봅시다. 

 

> merge(A,B,by='id',all.y=TRUE)
  id weight height math eng
1  2     88    175   75 100
2  3     98    180   85  85
3  4     NA     NA   85  60

 

영상강의

 

반응형

댓글