JJUNNAK's

[ R ] 매트릭스 Matrix 본문

Language/R

[ R ] 매트릭스 Matrix

최낙준 2023. 1. 17. 02:50

매트릭스

(Matrix)

매트릭스는 2차원 형태의 데이터를 저장하고 분석할때 사용되는 자료구조이다.

매트릭스에 저장되는 모든 자료의 data type은 동일해야 한다.

보통 숫자로만 구성된 2차원자료를 저장하고 처리한다.


2차원 데이터

2차원 데이터는 1차원 구조의 데이터들이 모여서 만들어지는 데이터로

행 과 열의 방향성을 가지는 데이터 구조이다.

2차원 데이터는 테이블 형태로 표현되는데

가로줄은 행,Row,관측값

세로줄은 열,Column, 변수 라고 부른다.


매트릭스 생성

  1. 매트릭스 생성
# 변수명 <- matrix( 데이터, nrow=행 갯수, ncol= 열 갯수)

m <- matrix(1:15, nrow=3, ncol=5)

# [ 실행 결과 ]
      [,1] [,2] [,3] [,4] [,5]
[1,]    1    4    7   10   13
[2,]    2    5    8   11   14
[3,]    3    6    9   12   15

위 코드대로 실행하면 행(세로) 방향 으로 값이 채워진다.

하지만 다음과 같이 열(가로) 방향으로 저장할 수도 있다.

2. 방향지정

# byrow=T 사용 방향지정
m <- matrix(1:15, nrow=3, ncol=5, byrow=T )


# [ 실행 결과 ]
 >    [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    6    7    8    9   10
[3,]   11   12   13   14   15

여러개의 벡터를 묶어서 생성하는 방법은 다음과 같다.

3. 벡터 결합 생성

# 벡터 생성
x <- 1:5  
y <- 6:10
# x,y 를 결합해 매트릭스 생성
m <- cbind(x,y)
m2 <- rbind(x,y)

# [ 실행결과 ]
> m
     x  y
[1,] 1  6
[2,] 2  7
[3,] 3  8
[4,] 4  9
[5,] 5 10

> m2
  [,1] [,2] [,3] [,4] [,5]
x    1    2    3    4    5
y    6    7    8    9   10

rbind() 는 row bind 즉 가로(행) 방향으로 묶어주는 함수이고

cbind() 는 column bind 세로(열) 방향으로 묶어주는 함수이다.

벡터 + 매트릭스, 매트릭스 + 매트릭스 로 묶을때도 사용한다.


매트릭스 값 추출

매트릭스의 특정 위치의 값을 추출하기 위해서는 2개의 인덱스가 필요하다.

2차원 구조의 데이터 형태이기 때문에 행,열 의 인덱스가 필요하다.

# 매트릭스 m
m <- matrix(1:25, nrow=5, ncol=5) 
      [,1] [,2] [,3] [,4] [,5]
[1,]    1    6   11   16   21
[2,]    2    7   12   17   22
[3,]    3    8   13   18   23
[4,]    4    9   14   19   24
[5,]    5   10   15   20   25

  1. 특정 위치의 값 추출
# 매트릭스[행 인덱스, 열 인덱스]

m[2,3]  # 12
m[5,5]  # 25

2. 특정 범위의 값 추출

m[2,]  #  2  7 12 17 22
m[,5]  #  21 22 23 24 25


행, 열에 이름 붙이기

매트릭스에도 벡터와 마찬가지로 행과 열에 이름을 붙일 수 있다.

학생들의 점수 데이터를 입력한다고 가정을 해봤다.

  1. 이름 붙이기
# 점수 매트릭스 생성
score <- matrix(c(0,40,60,100,90,
           0,50,40,95,90,
           10,30,50,100,70), nrow=5)

# 학생, 과목이름 벡터 생성
student <- c('짱구','훈이','유리','철수','맹구')
subject <- c('국어','영어','수학')


rownames(score) <- student # 행 이름으로 student 적용
colnames(score) <- subject # 열 이름으로 subject 적용

# [ 실행 결과 ]
> score
     국어 영어 수학
짱구    0    0   10
훈이   40   50   30
유리   60   40   50
철수  100   95  100
맹구   90   90   70

 

행과 열의 이름을 지정한 매트릭스는 인덱스를 대신하여 이름으로 값을 추출 할수도 있다.

2. 이름으로 값 추출

 
score['짱구',]
 국어 영어 수학 
   0    0   10 

score[,'국어']
 짱구 훈이 유리 철수 맹구 
   0   40   60  100   90

 

'Language > R' 카테고리의 다른 글

[ R ] 데이터셋 Dataset, 데이터 조작 함수 모음  (0) 2023.01.17
[ R ] 데이터 프레임 DataFrame  (0) 2023.01.17
[ R ] 리스트 List  (0) 2023.01.17
[ R ] 팩터 Factor  (0) 2023.01.17
[ R ] 변수, 벡터(vector)  (0) 2023.01.17
Comments