[R 프로그래밍] R 프로그래밍 데이터 프레임 결합 rbind, cbind,merge
R에서 제공하는 함수 중 데이터 프레임 결합에 이용되는 함수 세 가지를 소개해 드리겠습니다. rbind(row bind: 행 합치기), cbind(column bind: 열 합치기),merge(inner join) 인데요. 코드는 아래와 같습니다.
>rbind(데이터프레임1, 데이터프레임2)
* rbind 사용 시 반드시 두 데이터 프레임의 열 이름과 개수가 같아야 합니다.
>cbind(데이터프레임1, 데이터프레임2)
* cbind 사용 시 열 이름 상관하지 않아도 됩니다.
>merge(데이터프레임1, 데이터프레임2, by= 키 값) : 동일 키값 기준으로 결합
* merge 함수의 경우 Inner Join, Outer Join, Left Outer Join, Right Outer Join이 있음.
데이터 프레임을 하나 생성해서 예를 들어보겠습니다.
#데이터 프레임 생성
> x<-data.frame(a=c(11,22,33),b=c(44,55,66))
> y<-data.frame(a=c(77,88,99),b=c(111,222,333))
> x
a b
1 11 44
2 22 55
3 33 66
> y
a b
1 77 111
2 88 222
3 99 333
1) rbind 사용 : 행 기준 병합
# 이 때 반드시 두 데이터 프레임의 열 이름 일치하고 개수도 같아야 함
> rbind(x, y)
a b
1 11 44
2 22 55
3 33 66
4 77 111
5 88 222
6 99 333
2) cbind 사용 : 열 기준 병합
#데이터 프레임 생성, 열 이름 다르게 만들기 cbind 는 열 이름이 달라도 상관없음
> x<-data.frame(a=c(11,22,33),b=c(44,55,66))
> y<-data.frame(a=c(77,88,99),plus=c(111,222,333))
> cbind(x,y)
a b a plus
1 11 44 77 111
2 22 55 88 222
3 33 66 99 333
3) merge 사용 : 두 데이터프레임의 공통된 키를 기준으로 병합
# 데이터 프레임 생성
> x<-data.frame(a=c(11,22,33),b=c(44,55,66))
> y<-data.frame(a=c(11,22,33),plus=c(111,222,333))
#a를 기준으로 두 데이터 프레임을 병합
> merge(x,y,by=c("a"))
a b plus
1 11 44 111
2 22 55 222
3 33 66 333