03 | 데이터 프레임의 행과 컬럼 합치기
rbind( )와 cbind( )는 각각 행 또는 컬럼 형태로 주어진 벡터, 행렬, 데이터 프레임을 합쳐서 결과로 행렬 또는 데이터 프레임을 만드는 데 사용한다. 이들 함수는 분리되어 저장된 데이터를 합치는 데 유용하게 사용할 수 있다.
함수 |
의미 |
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”가 팩터 데이터로 취급되어 이름을 표현하려는 컬럼의 목적에 어긋나게 된다.