대각행렬(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 |