R - 행렬: 초보자를 위한 친절한 소개
안녕하세요, 미래의 R 프로그래밍 슈퍼스타! R의 행렬 세계로의 흥미로운 여정을 안내해 드리게 되어 매우 기쁩니다. 컴퓨터 과학을 몇 년 동안 가르쳐온 경험으로 보장해 드리겠지만, 행렬은 기본적인 것뿐만 아니라 매우 재미있게 작업할 수 있습니다. 그麼, 함께 R 행렬의 미스터리를 풀어보겠습니다!
행렬이란 무엇인가?
코딩을 시작하기 전에 행렬이 무엇인지 이해해 보겠습니다. 스프레드시트나 테이블을 생각해 보세요. 그것이 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