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