Chapter 8 Matrix
8.1 행렬 생성하기
m1 = matrix(1:6, nrow = 2, ncol = 3)
m1## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
matrix() 함수를 이용해 행렬을 생성할 수 있으며, nrow와 ncol을 통해 행과 열 갯수를 지정할 수 있습니다.
m2 = matrix(letters[1:6], nrow = 2, ncol = 3)
m2## [,1] [,2] [,3]
## [1,] "a" "c" "e"
## [2,] "b" "d" "f"
문자 형태로 이루어진 행렬 역시 생성할 수 있습니다. 그러나 숫자와 문자가 한 행렬 내에서 같이 사용될 수는 없습니다.
v1 = 1:4
v2 = 5:8cbind(v1, v2)## v1 v2
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
## [4,] 4 8
rbind(v1, v2)## [,1] [,2] [,3] [,4]
## v1 1 2 3 4
## v2 5 6 7 8
cbind() 함수는 열로 데이터를 합치며, rbind() 함수는 행으로 데이터를 합칩니다.
8.2 기존 행렬에 데이터 추가하기
cbind()와 rbind() 함수를 이용해 기존 행렬에 데이터를 추가할 수 있습니다.
m1 = cbind(v1, v2)
m1## v1 v2
## [1,] 1 5
## [2,] 2 6
## [3,] 3 7
## [4,] 4 8
v3 = 9:12
cbind(m1, v3)## v1 v2 v3
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
8.3 행이름 및 열이름 추가하기
m2 = matrix(1:12, nrow = 4, ncol = 3)
m2## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
rownames(m2) = c('row1', 'row2', 'row3', 'row4')
m2## [,1] [,2] [,3]
## row1 1 5 9
## row2 2 6 10
## row3 3 7 11
## row4 4 8 12
colnames(m2) = c('col1', 'col2' ,'col3')
m2## col1 col2 col3
## row1 1 5 9
## row2 2 6 10
## row3 3 7 11
## row4 4 8 12
rownames()와 colnames() 함수를 이용해 행 및 열이름을 직접 지정할 수 있습니다.
8.4 행렬 추출하기
행렬 역시 대괄호를 이용해 데이터를 추출할 수 있으며, 공백으로 둘시 모든 행(열)을 선택하게 됩니다.
m2## col1 col2 col3
## row1 1 5 9
## row2 2 6 10
## row3 3 7 11
## row4 4 8 12
m2[1:2, ]## col1 col2 col3
## row1 1 5 9
## row2 2 6 10
m2[ , c(1,3)]## col1 col3
## row1 1 9
## row2 2 10
## row3 3 11
## row4 4 12
m2[1:2, c(1,3)]## col1 col3
## row1 1 9
## row2 2 10
만일 하나의 열만 선택시 결과가 벡터 형태로 출력되며, drop = FALSE 인자를 추가해주면 행렬의 형태가 유지되어 출력됩니다.
m2[, 2]## row1 row2 row3 row4
## 5 6 7 8
m2[, 2, drop = FALSE]## col2
## row1 5
## row2 6
## row3 7
## row4 8