R - 행렬: 초보자를 위한 친절한 소개

안녕하세요, 미래의 R 프로그래밍 슈퍼스타! R의 행렬 세계로의 흥미로운 여정을 안내해 드리게 되어 매우 기쁩니다. 컴퓨터 과학을 몇 년 동안 가르쳐온 경험으로 보장해 드리겠지만, 행렬은 기본적인 것뿐만 아니라 매우 재미있게 작업할 수 있습니다. 그麼, 함께 R 행렬의 미스터리를 풀어보겠습니다!

R - Matrices

행렬이란 무엇인가?

코딩을 시작하기 전에 행렬이 무엇인지 이해해 보겠습니다. 스프레드시트나 테이블을 생각해 보세요. 그것이 R에서 행렬의 본질입니다 - 행과 열로 정렬된 숫자나 문자의 이차원 배열입니다. 멋진 것 아닙니까?

첫 번째 행렬 만들기

간단한 행렬을 만들어 보겠습니다:

my_first_matrix <- matrix(1:9, nrow = 3, ncol = 3)
print(my_first_matrix)

이 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다:

[,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

어떻게 된 것인가요? matrix() 함수를 사용하여 3x3 행렬을 만들었습니다. 숫자 1에서 9는 기본적으로 열 방향으로 채워집니다. 마치 열에 숫자를 붓는 것 같은 느낌입니다!

커스텀 값으로 행렬 만들기

조금 더 복잡하게 만들어 보겠습니다:

custom_matrix <- matrix(c(10, 20, 30, 40, 50, 60), nrow = 2, ncol = 3)
print(custom_matrix)

출력:

[,1] [,2] [,3]
[1,]   10   30   50
[2,]   20   40   60

여기서 우리는 특정 값으로 구성된 2x3 행렬을 만들었습니다. R이 행렬을 열 방향으로 채우는 것을 주목하세요.

행렬의 요소 접근

이제 행렬을 만들었으니, 그 요소를 어떻게 접근하는지 배워보겠습니다. 마치 지도에서 보물을 찾는 것 같아요!

단일 요소 접근

단일 요소를 접근하려면 행과 열 인덱스를 사용한 괄호를 사용합니다:

my_matrix <- matrix(1:9, nrow = 3, ncol = 3)
element <- my_matrix[2, 3]
print(element)

이제 8이 출력됩니다. 우리는 2번째 행과 3번째 열의 요소를 접근한 것입니다!

전체 행이나 열 접근

전체 행이나 열을 원하시나요? 문제 없습니다!

# 두 번째 행을 가져옵니다
second_row <- my_matrix[2, ]
print(second_row)

# 세 번째 열을 가져옵니다
third_column <- my_matrix[, 3]
print(third_column)

출력:

[1] 2 5 8
[1] 7 8 9

열이나 행 인덱스를 공백으로 두면 전체 행이나 열을 가져옵니다. 마치 "이 행/열의 모든 것을 주세요!"라고 말하는 것과 같습니다!

행렬 계산

이제 행렬을 실제로 사용해 보겠습니다! R은 행렬 계산을 매우 간편하게 만들어줍니다.

행렬 덧셈

행렬을 더하는 것은 숫자를 더하는 것과 마찬가지로 간단합니다:

matrix1 <- matrix(1:4, nrow = 2)
matrix2 <- matrix(5:8, nrow = 2)
sum_matrix <- matrix1 + matrix2
print(sum_matrix)

출력:

[,1] [,2]
[1,]    6    8
[2,]    8   10

이는 대응 요소를 더하는 것과 같습니다. 마법 같아요!

행렬 곱셈

행렬 곱셈은 조금 더 복잡하지만, R은 간단하게 만들어줍니다:

result <- matrix1 %*% matrix2
print(result)

출력:

[,1] [,2]
[1,]   23   31
[2,]   34   46

%*% 연산자는 행렬 곱셈에 사용됩니다. 기억하세요, 첫 번째 행렬의 열 수는 두 번째 행렬의 행 수와 같아야 합니다!

행렬 전치

행렬을 전치하면 마치 행렬을 옆으로 기울이는 것입니다:

transposed <- t(matrix1)
print(transposed)

출력:

[,1] [,2]
[1,]    1    2
[2,]    3    4

t() 함수는 전치 마법사입니다!

실제 예시: 이미지 처리

이제 행렬 기술을 실제 세계에서 사용해 보겠습니다. 상상해 보세요, 간단한 이미지 처리 작업을 수행하고 있습니다. 디지털 이미지에서 각 픽셀은 숫자로 표현되며, 전체 이미지는 이러한 숫자의 행렬입니다.

다음은 간단한 5x5 그레이스케일 이미지를 행렬로 표현한 것입니다:

image <- matrix(c(
200, 150, 100, 150, 200,
150, 100,  50, 100, 150,
100,  50,   0,  50, 100,
150, 100,  50, 100, 150,
200, 150, 100, 150, 200
), nrow = 5, byrow = TRUE)

print(image)

이는 간단한 다이아몬드 패턴을 생성합니다. 이제 이 이미지를 밝게 만들기 위해 각 픽셀에 50을 더해보겠습니다:

brightened_image <- image + 50
print(brightened_image)

우리는 간단한 이미지 처리 연산을 수행한 것입니다!

결론

축하합니다! R의 행렬 세계로 첫 걸음을 뗐습니다. 우리는 행렬을 만들고, 그 요소에 접근하며, 기본 계산을 수행하는 방법을 배웠습니다. 연습이 완벽을 만드는 것을 기억하세요, 그러니 이 개념들을 실험해 보지 마세요.

마무리로, 우리가 배운 주요 행렬 함수를 요약한 표를 제공합니다:

함수 설명 예시
matrix() 행렬 생성 matrix(1:9, nrow = 3, ncol = 3)
[row, col] 행렬 요소 접근 my_matrix[2, 3]
+ 행렬 덧셈 matrix1 + matrix2
%*% 행렬 곱셈 matrix1 %*% matrix2
t() 행렬 전치 t(matrix1)

계속 탐구하고, 계속 코딩하고, 가장 중요한 것은 R 행렬을 즐기세요! 그들은 단순히 상자 속 숫자가 아니라, 실제 세계의 문제를 해결할 수 있는 강력한 도구입니다. 다음 번에 만날 때까지, 행복하게 코딩하세요!

Credits: Image by storyset