R언어의 기본이 되는 object의 종류는 다음과 같다..
- vector
- matrix
- array
- factor
- list
- data frame
- function
본 글에서는 matrix의 사용에 대해 설명한다.
- matrix의 기본
- matrix에의 접근
- 자세한 argument 설명
- data
- nrow
- ncol
- byrow
1. matrix의 기본
Matrices를 한마디로 정의하면
table과 같은 2차원 vector
라고 할 수 있다.
완전히 동일하지는 않지만 C언어의 2차원 배열과 유사하다.
Matrices는 matrix function을 통해 다양한 방법으로 생성 가능하다.
먼저 matrix function의 definition은 아래와 같다.
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
matrix 생성 예)
> matrix(c(1,3,5,7,9,2),ncol=3) [,1] [,2] [,3] [1,] 1 5 9 [2,] 3 7 2
위의 예와 같이 vector를 생성하기 위해 사용했던 다양한 방법들과 matrix function을 이용해서 생성한다.
matrix function에 대해 좀 더 깊은 이해를 위해 다양한 argument에 대해서 알아보면 다음과 같다.
2. matrix에의 접근
> m = matrix(1:9,ncol=3) > m [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > m[2,2] [1] 5 > m[2,] [1] 2 5 8 > m[,2] [1] 4 5 6
위와 같이 3x3 matrix가 있다고 했을 때 특정 위치의 element에는 m[x,y] 형식으로 접근하면 된다.
반면 특정 row 전체 가져오고 싶을 때는 column 란을 비워 놓는 방식으로 값을 가져올 수 있다.
2.1. 자세한 Argument 설명
2.1.1. data
실제 데이터가 들어가는 부분으로 vector mode로 들어간다. 해당 vector를 바탕으로 matrix를 구성하는데, 이 때의 vector 생성 방법은 [R언어 vector]에 언급된 방법과 동일하다.
c function을 이용한 예)
> matrix(c(1,3,5,7,9,2),ncol=3) [,1] [,2] [,3] [1,] 1 5 9 [2,] 3 7 2
colon operator를 이용한 예)
> matrix(1:6,ncol=3) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
seq function을 이용한 예)
> matrix(seq(from=1,to=6),ncol=3) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
req function을 이용한 예)
> matrix(rep(1:3,c(1,2,3)),ncol=3) [,1] [,2] [,3] [1,] 1 2 3 [2,] 2 3 3
2.1.2. nrow
matrix의 row(행)의 수를 정의하는 부분이다. 해당 nrow 값에 따라 matrix의 모양이 아래와 같이 달라진다.
> matrix(1:6,nrow=2) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
> matrix(1:6,nrow=3) [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6
2.1.3. ncol
matrix의 col(열)의 수를 정의하는 부분이다. 해당 ncol 값에 따라 matrix의 모양이 아래와 같이 달라진다.
> matrix(1:6,ncol=2) [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6
> matrix(1:6,ncol=3) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
그렇다면 nrow와 ncol이 현재 주어진 data argument와 매칭되지 않는다면 어떻게 될까?
> matrix(1:6,nrow=3,ncol=3) [,1] [,2] [,3] [1,] 1 4 1 [2,] 2 5 2 [3,] 3 6 3
위와 같이 data 내용이 반복되면서 nrow와 ncol에 정의한 matrix 모양에 맞춰지는 것을 볼 수 있다.
2.1.4. byrow
byrow argument는 data의 값들을 row를 기준으로 채울 것인지 column을 기준으로 채울 것인지 정한다.
> matrix(1:6,ncol=3,byrow=TRUE) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6
> matrix(1:6,ncol=3,byrow=FALSE) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
'Language > R' 카테고리의 다른 글
[03-5] R언어 - array 의 상세 (0) | 2017.11.24 |
---|---|
[02-1] R언어 - Assignment (할당) (0) | 2017.11.10 |
[03-1] R언어 - Object의 정의 및 종류 (0) | 2017.11.10 |
[03-8] R언어 - Data frame 의 상세 (0) | 2017.11.09 |
[03-3] R언어 - vector 의 상세 (0) | 2017.11.08 |
[03-2] R언어 - type와 mode 차이의 이해 (0) | 2017.11.07 |
[04-1] R언어 - 관련 학습 문서 및 사이트 (0) | 2017.11.07 |
[01-2] R언어 - 설치하기 (0) | 2017.11.07 |