매트릭스(Matrix) 기초
# Matrix : 동일 데이터 타입을 갖는 2차원 배열
# c()함수 이용 matrix 생성
m <- matrix(c(1:12), nrow=3)
m
# 1 4 7 9
# 2 5 8 10
# 3 6 9 12
# 우리의 사고방식과는 다르게 1 2 3 4 순이 아님
m <- matrix(c(1:10), nrow=2, byrow=T) # byrow=T : 행 우선
m
# 1 2 3 4 5
# 6 7 8 9 10
# 인덱싱
m[c(1,2),c(2,3,5)]
# 1, 2행의 2, 3, 5번 컬럼
# rbind()/cbind() 함수 이용
x1 <- c(5,40,50:52)
x2 <- c(30,5,6:8)
mr <- rbind(x1,x2) # 두개 백터를 행단위로 묶어
mr
# 5 40 50 51 52
# 30 5 6 7 8
mc <- cbind(x1,x2)
mc
# 전치행렬 변경
t(mc)
# matrix()함수 이용
m3 <- matrix(10:19, 2) #10개 데이터를 2행으로 생성
m3
mode(m3); class(m3) #numeric, matrix
# matrix 데이터 처리 함수
x <- matrix(c(1:9), nrow=3, ncol=3) # 3행 3열 matrix 객체
length(x) # 데이터 개수
ncol(x); nrow(x) # 열/행 수
x
# matrix에 컬럼이름 적용하기
colnames(x) <- c("one", "two", "three")
rownames(x) <- c(1,2,3)
x
# apply(변수, 행/열, 내장함수)
apply(x,1,max) # 행 단위 최대값
apply(x,1,sum)
apply(x,2,mean) # 열 단위 평균값
# 사용자 함수와 apply() 적용
f <- function(x){ # x 매개변수
x * c(1,2,3)
}
x
t(apply(x, 1, f)) # row가 들어가면 col로 나옴
byrow colnames rownames apply 전치행렬 t