0Pricing
R Academy · 강의

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 cols

matrix(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), '
')  # 20

is.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 column

nrow 또는 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. matrix()로 행렬 만들기
  2. 행렬 인덱싱과 부분 집합
  3. 행렬 산술과 연산
  4. 행렬 전치와 형태 변경
← R Academy(으)로 돌아가기