이전 포스팅에 이어 이번 포스팅에서는 Matrix 구조에 대해 설명드리겠습니다.
이전 포스팅이 궁금하신 분들은 아래 링크를 클릭해주세요!
2021.06.14 - [R] - [R 기초] 자료 형태 및 구조_Vector
[R 기초] 자료형태 및 구조_Vector
1. 개요 1.1 자료 형태(Data Type) 개념 저장된 데이터의 성격을 말합니다. R의 기본 자료 형태는 5개가 존재합니다. 아래 [그림 1-1]을 참조하시기 바랍니다 [그림 1-1] R의 기본 자료 형태 종류 및 예시
boom-analysis.tistory.com
4. Matrix
4.1 Matrix 의미
- Matrix는 우리나라 말로 행렬을 뜻합니다.
- Vector와 마찬가지로, 한가지의 자료 유형만 저장이 가능합니다. 즉, 전체 데이터의 유형이 같아야 합니다.
4.2 Matrix 생성 방법
matrix()함수를 사용하여 생성합니다.ncol인자를 사용하여 데이터의 열의 수를 지정하거나,nrow인자를 사용하여 데이터의 행의 수를 지정하여 matrix를 생성합니다.- 또한, 행과 열의 수가 일치 하지 않는 경우, Matrix의 들어갈 값을 반복하여 채웁니다.
- Vector와 마찬가지로, 다른 자료 형태로 생성한다면, 자동으로 형태를 변환하여 저장합니다.
var1 <- matrix(1:9, ncol = 3)
var1
# 결과 값 :
# [,1] [,2] [,3]
#[1,] 1 4 7
#[2,] 2 5 8
#[3,] 3 6 9
var2 <- matrix(1:9, nrow = 3)
var2
# 결과 값 :
# [,1] [,2] [,3]
#[1,] 1 4 7
#[2,] 2 5 8
#[3,] 3 6 9
# 형태 자동 변환
var3 <- matrix(1:9, nrow = 4)
var3
# [,1] [,2] [,3]
# [1,] 1 5 9
# [2,] 2 6 1
# [3,] 3 7 2
# [4,] 4 8 3
# 형태 자동 변환(논리 형태와 숫자 형태로 생성)
var4 <- matrix(c(TRUE, FALSE, FALSE, TRUE, 10, 9), nrow = 3)
var4
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 1 1 9
# [2,] 0 1 2
# [3,] 0 10 3
- 위 경우에는 열 기준으로 Matrix가 생성되는 것을 알 수 있습니다.
- Matrix 값을 행 기준으로 생성하고 싶다면,
byrow인자를 사용하시면 됩니다.
var1 <- matrix(1:9, nrow = 4, byrow = TRUE)
var1
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 1 5 9
# [2,] 2 6 1
# [3,] 3 7 2
# [4,] 4 8 3
4.3 Matrix 데이터 추출
- Matrix의 데이터를 추출하기 위해서는
Matrix이름[숫자1, 숫자2]형식으로 행 및 열을 지정합니다. 여기서 숫자1은 행을 뜻하고 숫자2는 열을 뜻합니다. - 또한 특정 행 전체를 추출하고 싶으면
Matrix이름[숫자1, ]을, 특정 열 전체를 추출하고 싶으면Matrix이름[ , 숫자2]를 사용합니다.
var1 <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), ncol = 3)
var1[1, 1]
# 결과 값 : 1
var1[1, 2]
# 결과 값 : 4
var1[2, 1]
# 결과 값 : 2
var1[1, ]
# 결과 값 : 1 4 7
var1[ , 2]
# 결과 값 : 4 5 6
4.4 Matrix 연산
4.4.1 사칙 연산
- Matrix의 사칙 연산이 가능합니다.
var1 <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), ncol = 3)
var1 + 2
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 3 6 9
# [2,] 4 7 10
# [3,] 5 8 11
var1 - 2
# 결과 값 :
# [,1] [,2] [,3]
# [1,] -1 2 5
# [2,] 0 3 6
# [3,] 1 4 7
var1 * 2
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 2 8 14
# [2,] 4 10 16
# [3,] 6 12 18
var1 / 2
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 0.5 2.0 3.5
# [2,] 1.0 2.5 4.0
# [3,] 1.5 3.0 4.5
4.4.2 Matrix 간 연산
- Matrix의 사칙 연산이 가능합니다.
- 또한 Matrix 간 연산도 가능합니다.
var1 <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), ncol = 3)
var1 + var1
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 2 8 14
# [2,] 4 10 16
# [3,] 6 12 18
var1 - var1
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 0 0 0
# [2,] 0 0 0
# [3,] 0 0 0
var1 / var1
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 1 1 1
# [2,] 1 1 1
# [3,] 1 1 1
var1 * var1
# 결과 값 :
# [,1] [,2] [,3]
# [1,] 1 16 49
# [2,] 4 25 64
# [3,] 9 36 81
- 행렬 곱은
%*%을 사용합니다. - 역행렬은
solve()함수를 사용합니다. - 전치행렬은
t()함수를 사용합니다.
var1 <- matrix(1:4, ncol = 2)
var1 %*% var1
# 결과 값 :
# [,1] [,2]
# [1,] 7 15
# [2,] 10 22
solve(var1)
# 결과 값 :
# [,1] [,2]
# [1,] -2 1.5
# [2,] 1 -0.5
t(var1)
# 결과 값 :
# [,1] [,2]
# [1,] 1 2
# [2,] 3 4
ncol(var1)
nrow(var1)
- 열의 갯수는
ncol()함수로, 행의 갯수는nrow()함수로 구할 수 있습니다.
var1 <- matrix(1:6, ncol = 2)
ncol(var1)
# 결과 값 : 2
nrow(var1)
# 결과 값 : 3
5. Array
5.1 Array 의미
- Array는 우리나라 말로 배열을 뜻합니다.
- Matrix가 2차원 행렬 이라면, Array는 n차원 행렬입니다.
- 다른 구조에 비해 활용도가 낮습니다.
5.2 Array 생성 방법
array()함수를 사용하여 Array를 생성할 수 있습니다.dim이라는 인자를 활용하여 n행, n열, n차원의 Array를 생성합니다.
# 2행 x 2열 x 3차원 Array 생성
var1 <- array(1:12, dim = c(2, 2, 3))
var1
# 결과 값 :
# , , 1
#
# [,1] [,2]
# [1,] 1 3
# [2,] 2 4
# , , 2
#
# [,1] [,2]
# [1,] 5 7
# [2,] 6 8
#
# , , 3
#
# [,1] [,2]
# [1,] 9 11
# [2,] 10 12
5.3 Array 데이터 추출
- Array 데이터 추출은 Matrix 추출에 차원부분만 추가해서
Array이름[숫자1, 숫자2, 숫자3]으로 추출 가능합니다.숫자 3은 차원을 뜻합니다.
var1 <- array(1:12, dim = c(2, 2, 3))
var1[2, 2, 3] # 2행 2열 3차원의 데이터 추출
# 결과 값 : 12
'R' 카테고리의 다른 글
| [R 기초] 자료 형태 및 구조_Vector (0) | 2021.06.14 |
|---|---|
| Object 개념 및 사용법 (0) | 2021.06.13 |
| 프로젝트 생성 및 환경 설정 (0) | 2021.06.11 |
| R 및 R Studio 설치 (0) | 2021.06.07 |



