더북(TheBook)

03 | 데이터 프레임의 행과 컬럼 합치기

rbind( )와 cbind( )는 각각 행 또는 컬럼 형태로 주어진 벡터, 행렬, 데이터 프레임을 합쳐서 결과로 행렬 또는 데이터 프레임을 만드는 데 사용한다. 이들 함수는 분리되어 저장된 데이터를 합치는 데 유용하게 사용할 수 있다.

표 4-5 행, 컬럼 병합 함수

함수

의미

rbind(...)

지정한 데이터들을 행으로 취급해 합친다.

cbind(...)

지정한 데이터들을 컬럼으로 취급해 합친다.

예를 들어, c(1, 2, 3), c(4, 5, 6)이라는 두 벡터는 rbind( )를 사용해 각 벡터를 한 행으로 하는 행렬로 합칠 수 있다.

> rbind(c(1, 2, 3), c(4, 5, 6))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

마찬가지로 데이터 프레임 역시 rbind( )를 사용하여 행을 합칠 수 있다. 다음은 2개 행을 저장한 데이터 프레임 x와 새로운 값을 저장한 벡터 c(3, “c”)를 rbind( )로 합쳐서 새로운 데이터 프레임 y에 저장하는 예다.

> (x <- data.frame(id=c(1, 2), name=c("a", "b"), stringsAsFactors=F))
  id  name
1  1     a
2  2     b
> str(x)
'data.frame':    2 obs. of 2 variables:
 $ id  : num  1 2
 $ name: chr "a" "b"
> (y <- rbind(x, c(3, "c")))
  id  name
1  1     a
2  2     b
3  3     c

위 코드의 첫 행에서 stringsAsFactors는 name 컬럼의 데이터를 팩터가 아니라 문자열로 취급하기 위해 필요하다. 만약 stringsAsFactors를 지정하지 않으면 “a”, “b”가 팩터 데이터로 취급되어 이름을 표현하려는 컬럼의 목적에 어긋나게 된다.