matrix()로 행렬 만들기
data, nrow, ncol, byrow를 지정하여 행렬을 구축합니다.
matrix()로 행렬 만들기은(는) CoddyKit의 무료 R Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 R Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. R Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
R에서 행렬이란 무엇입니까?
R의 matrix는 모든 요소가 같은 유형이어야 하는 2차원 데이터 구조입니다. 행과 열로 이루어진 표라고 생각하면 됩니다. 행렬은 선형대수, 이미지 처리 및 통계 계산에 필수적입니다.
# A simple 2x3 matrix
m <- matrix(1:6, nrow = 2, ncol = 3)
cat('A 2x3 matrix:
')
print(m)
cat('Dimensions:', dim(m), '
') # rows colsmatrix(data, nrow, ncol)
matrix() 함수는 데이터 벡터를 받아 행과 열로 배치합니다. 기본적으로 R은 열 단위(열 우선 순서)로 행렬을 채웁니다.
# Filled column by column (default)
m_col <- matrix(1:12, nrow = 3, ncol = 4)
cat('Column-filled 3x4 matrix:
')
print(m_col)
cat('Note: 1,2,3 fill the first COLUMN, not the first row
')byrow = TRUE로 행 단위 채우기
byrow = TRUE를 설정하면 행렬을 행 단위로 채웁니다. 스프레드시트처럼 데이터를 행 기준으로 생각할 때 더 직관적인 경우가 많습니다.
# Filled row by row
m_row <- matrix(1:12, nrow = 3, ncol = 4, byrow = TRUE)
cat('Row-filled 3x4 matrix:
')
print(m_row)
cat('Note: 1,2,3,4 fill the first ROW
')
# Verify byrow
m_check <- matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)
print(m_check)데이터 벡터로 행렬 만들기
실제 데이터 벡터를 전달하면 의미 있는 행렬을 만들 수 있습니다. 벡터가 nrow * ncol보다 짧으면 R이 벡터를 재사용하지만, 정확히 필요한 개수의 요소를 제공하는 것이 권장됩니다.
# Exam scores: 3 students, 4 subjects
scores_data <- c(88, 92, 75, 81, # Student 1
79, 85, 90, 73, # Student 2
95, 78, 82, 88) # Student 3
exam_matrix <- matrix(scores_data, nrow = 3, ncol = 4, byrow = TRUE)
rownames(exam_matrix) <- c('Alice', 'Bob', 'Carol')
colnames(exam_matrix) <- c('Math', 'Science', 'English', 'History')
print(exam_matrix)dim() — 차원 확인하기
dim(m)은 길이가 2인 수치형 벡터를 반환합니다. 먼저 행의 개수, 다음으로 열의 개수가 반환됩니다. 개별 차원에는 nrow(m)와 ncol(m)을 사용할 수도 있습니다.
m <- matrix(1:20, nrow = 4, ncol = 5)
cat('dim(m):', dim(m), '
') # 4 5
cat('nrow(m):', nrow(m), '
') # 4
cat('ncol(m):', ncol(m), '
') # 5
cat('Total elements:', length(m), '
') # 20is.matrix() — 유형 확인하기
is.matrix(x)는 x가 행렬이면 TRUE를 반환합니다. 함수 입력을 검증할 때 유용합니다. 행렬은 배열이기도 하므로 is.array()도 TRUE를 반환한다는 점에 유의하십시오.
m <- matrix(1:4, nrow = 2)
v <- c(1, 2, 3, 4)
cat('is.matrix(m):', is.matrix(m), '
') # TRUE
cat('is.matrix(v):', is.matrix(v), '
') # FALSE
cat('is.array(m): ', is.array(m), '
') # TRUE (matrix IS an array)
cat('class(m): ', class(m), '
')영행렬과 단위행렬
하나의 값을 재사용하면 특수한 행렬을 만들 수 있습니다. matrix(0, n, n)은 영행렬을 만들고, diag(n)은 n x n 단위행렬을 만듭니다(대각선에는 1, 나머지 위치에는 0).
# Zero matrix 3x3
zero_mat <- matrix(0, nrow = 3, ncol = 3)
cat('Zero matrix:
')
print(zero_mat)
# Identity matrix 3x3
identity_mat <- diag(3)
cat('Identity matrix:
')
print(identity_mat)재사용된 값으로 행렬 만들기
데이터 벡터가 nrow * ncol보다 짧으면 R은 벡터를 재사용합니다(처음부터 반복). 벡터의 길이가 행렬의 크기로 나누어떨어지지 않으면 R이 경고를 표시합니다.
# Recycle a 2-element vector into a 4x4 matrix
alternate <- matrix(c(0, 1), nrow = 4, ncol = 4)
cat('Recycled 0,1 into 4x4:
')
print(alternate)
# Checkerboard effect: fills column by columnnrow 또는 ncol 하나만 지정하기
nrow 또는 ncol 중 하나만 지정하면 됩니다. R이 데이터 길이를 바탕으로 나머지 하나를 자동으로 계산합니다. 데이터가 나누어떨어지지 않으면 R은 값을 재사용하고 경고를 표시합니다.
# Only specify nrow, R infers ncol
m1 <- matrix(1:12, nrow = 3)
cat('nrow=3 only, inferred ncol =', ncol(m1), '
')
print(m1)
# Only specify ncol, R infers nrow
m2 <- matrix(1:12, ncol = 4)
cat('ncol=4 only, inferred nrow =', nrow(m2), '
')문자형 행렬
행렬은 숫자로만 제한되지 않습니다. 범주형 데이터, 게임판 또는 조회 격자에 사용할 문자형 행렬을 만들 수도 있습니다. 그러나 모든 요소는 여전히 같은 유형이어야 합니다.
# Tic-tac-toe board
board <- matrix(c('X', 'O', 'X',
'O', 'X', 'O',
'O', 'X', 'O'),
nrow = 3, ncol = 3, byrow = TRUE)
cat('Tic-Tac-Toe board:
')
print(board)
cat('Type:', class(board), '
')행렬 만들기: 요약
다음은 R에서 행렬을 만드는 방법을 요약한 것입니다:
matrix(data, nrow, ncol)— 기본 생성(기본적으로 열 단위로 채움)matrix(data, nrow, ncol, byrow=TRUE)— 행 단위로 채움matrix(0, n, m)— 영행렬diag(n)— 단위행렬dim(m),nrow(m),ncol(m)— 차원 확인is.matrix(m)— 유형 확인
# Quick creation reference
cat('3x2 column-fill:
'); print(matrix(1:6, 3, 2))
cat('3x2 row-fill:
'); print(matrix(1:6, 3, 2, byrow=TRUE))
cat('2x2 zeros:
'); print(matrix(0, 2, 2))
cat('3x3 identity:
'); print(diag(3))빠른 확인
기본 설정(byrow = TRUE를 사용하지 않는 경우)에서 matrix()는 어떤 순서로 요소를 채우나요?
복습: 행렬 만들기
훌륭합니다! 이 레슨의 핵심 내용은 다음과 같습니다.
matrix(data, nrow, ncol)는 matrix를 만듭니다. 기본적으로 데이터는 열 단위로 채워집니다.byrow = TRUE를 사용하면 행 단위로 채울 수 있습니다.nrow또는ncol중 하나만 지정하면 됩니다. 나머지는 R이 추론합니다.dim(m)은c(rows, cols)를 반환하고,nrow()와ncol()은 각각의 개수를 반환합니다.is.matrix()는 객체가 matrix인지 검사합니다.matrix(0, n, n)은 0으로 채워진 matrix를 만들고,diag(n)은 단위 matrix를 만듭니다.
# Full workflow: create, inspect, verify
m <- matrix(seq(2, 24, by = 2), nrow = 4, ncol = 3, byrow = TRUE)
cat('Even numbers matrix:
')
print(m)
cat('Rows:', nrow(m), '| Cols:', ncol(m), '| Elements:', length(m), '
')자주 묻는 질문
“matrix()로 행렬 만들기” 강의는 무료인가요?
네 — “matrix()로 행렬 만들기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 R Academy 강의 전체를 잠금 해제할 수 있습니다. R Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“matrix()로 행렬 만들기”에서 뭘 배우나요?
data, nrow, ncol, byrow를 지정하여 행렬을 구축합니다. 브라우저에서 직접 실행하는 실습 코드로 R Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
R Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 R Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“matrix()로 행렬 만들기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 R Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 R Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- matrix()로 행렬 만들기
- 행렬 인덱싱과 부분 집합
- 행렬 산술과 연산
- 행렬 전치와 형태 변경