R분석

Matrix 2

AIHYEONJI 2025. 1. 20. 18:59
대각행렬(diagonal matrix)

대각행렬이란 행과 열의 index가 같은 요소가 1이고 그 외의 요소는 모두 0인 행렬이다.

diag( ) 함수를 사용하면된다.

이제 만들어보자.

diag_m  <- diag(2,4)

# 행과 열의 인덱스가 일치하는 곳에 2라는 요소가 들어가는 4행4열의 행렬

같은 숫자가 아닌 다른 숫자를 넣어보자

diag_m2 <- diag(c(1,3),4)

# 행과 열의 인덱스가 일치하는 곳에 1과 3를 넣어준 4행4열의 행렬

행렬과 벡터의 결합

1. cbind ( ) : 열(colum) 단위

vec_1 <- 1:3   # 1 2 3

vec_2 <- 4:6   # 4 5 6 

vec_cbind <- cbind(vec_1,vec_2)

# vec_1과 vec_2의 요소를 열단위로 결합하여 행렬을 만든다.

# 예상결과 : 열단위로 벡터들이 순서대로 들어가 3행2열 행렬이 생성될 것

 

2. rbind( ) : 행(row) 단위

vec_rbind <-rbind(vec_1,vec_2)

# 예상결과 : 행단위로 벡터들이 순서대로 들어가 2행 3열의 행렬이 생성될 것

 

궁금한 것이 생겼다. 서로 길이가 다른 벡터끼리도 bind가 될까?

오류가 나더라도 실행해보자.

vec_bind_diff <- rbind(vec_1, 1:6, 1:12)

print(vec_bind_diff)

결론 1 : 서로 길이가 달라도 길이, 개수가 배수관계라면 짧은 쪽이 긴 쪽의 길이가 될 때까지 반복하여 사용된다.

결론 2 : 세 개 이상의 벡터를 전달하면 세 벡터가 모두 약수와 배수 관계여야하는구나.

'R분석' 카테고리의 다른 글

reshape2 package  (0) 2025.02.07
reshape package  (0) 2025.02.07
Matrix  (0) 2025.01.20
Matrix와 Vector  (0) 2025.01.20
R분석의 시작  (0) 2025.01.20