직장인 대학원/R

[R] 매트릭스 (Matrix)

Binsoo 2025. 4. 18.
728x90
반응형

🧱 메트릭스란?

  • 숫자(또는 같은 타입의 값들)를 행(row)과 열(column)로 배치한 2차원 구조
  • 각 위치는 [i, j]처럼 행 번호, 열 번호로 접근 가능
  • 수학적으로는 m × n 행렬이라고 부른다
[1,]  1   5   9
[2,]  2   6  10

 

🛠️ 메트릭스 만드는 3가지 방법

1. matrix() 함수 사용

matrix(nrow=2, ncol=3)

 

→ NA로 초기화된 2×3 행렬 생성
왼쪽 위부터 column-wise 방식으로 값이 채워짐

matrix(1:6, nrow=2, ncol=3)
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
 

2. dim()으로 차원 설정

m <- 1:10
dim(m) <- c(2, 5)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10

 

→ 1부터 10까지의 값을 2행 5열로 재구성

 

3. rbind() 또는 cbind()로 결합

cbind 으로 열 결합

x <- 1:3; y <- 10:12
cbind(x, y)   # 열 결합
     x  y
[1,] 1 10
[2,] 2 11
[3,] 3 12

 

rbind 으로 행 결합

x <- 1:3; y <- 10:12 
rbind(x, y)   # 행 결합
   [,1] [,2] [,3]
x     1    2    3
y    10   11   12

 

🧪 다양한 예제

1~20까지 숫자를 column-wise (열 기준) 으로 채운 4행 5열 행렬

matrix(1:20, 4, 5)
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20

 

값 2를 4행 5열 전체에 채운 행렬

matrix(2, 4, 5)
     [,1] [,2] [,3] [,4] [,5]
[1,]    2    2    2    2    2
[2,]    2    2    2    2    2
[3,]    2    2    2    2    2
[4,]    2    2    2    2    2

 

행 기준(byrow=TRUE)으로 값을 채운 2행 3열 행렬

matrix(c(1,2,3,4,5,6), nrow=2, byrow=TRUE)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

 

✍️ 행렬 인덱싱 & 이름 지정

 
z <- matrix(1:20, nrow=4, ncol=5)
rownames(z) <- c("a", "b", "c", "d")
colnames(z) <- c("alpha", "beta", "gamma", "delta", "eps")
z
   alpha beta gamma delta eps
a      1    5     9    13   17
b      2    6    10    14   18
c      3    7    11    15   19
d      4    8    12    16   20

 

 

z[1, 2]

[1] 5

 

z[4, ]

alpha  beta gamma delta  eps 
    4     8    12    16    20

 

z[ ,5]

a b c d 
17 18 19 20

 

z["a", "alpha"]

[1] 1

 

➕ 행렬 연산

R의 행렬 연산은 동일 위치 요소끼리 계산하는 element-wise 방식이 기본!

A <- matrix(1:6, nrow=2, ncol=3)
B <- matrix(c(6, 5, 4, 3, 2, 1), nrow=2, ncol=3)

 

A

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

 

B

     [,1] [,2] [,3]
[1,]    6    4    2
[2,]    5    3    1

 

A + B

     [,1] [,2] [,3]
[1,]    7    7    7
[2,]    7    7    7

 

A - B

     [,1] [,2] [,3]
[1,]   -5   -1    3
[2,]   -3    1    5

 

A * B

         [,1]     [,2]     [,3]
[1,] 0.1666667 0.75     2.5
[2,] 0.4       1.333333 6.0

 

 

📌 오늘의 한줄 요약

벡터가 1차원이라면, 메트릭스는 벡터의 확장 버전임
행과 열을 마음대로 다루고, 붙이고, 이름 붙이고, 연산도 가능한 진짜 강력한 도구였다

728x90
반응형

'직장인 대학원 > R' 카테고리의 다른 글

[R] 범주형 데이터 (Factor)  (0) 2025.04.18
[R] 리스트 (List)  (0) 2025.04.18
[R] 벡터(Vector)  (0) 2025.04.18
[R] 기본 객체와 자료 형태  (1) 2025.04.18
[R] 산술 연산  (0) 2025.04.18

댓글