더북(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”가 팩터 데이터로 취급되어 이름을 표현하려는 컬럼의 목적에 어긋나게 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.