matrix(행렬)
- 벡터처럼 한가지 유형의 타입만 저장한다.
- 행과 열로 구성되어있다.
matrix 생성
# matrix 생성 matrix(c(1:9),nrow=3) # nrow : 행의 수 matrix(c(1:9),ncol=3) # ncol : 열의 수 matrix(c(1:9),nrow=3,ncol=3) |
matrix 타입 및 구조 확인
# matrix 타입 및 구조 확인 x <- matrix(c(1:9),ncol=3) x str(x) mode(x) # 타입 class(x) # 형태 |
|
# matrix 타입인지 확인 is.matrix(x) |
행렬의 수 리턴
# 행의 수 리턴 nrow(x) |
|
# 열의 수 리턴 ncol(x) |
|
# 행과 열의 수 리턴 dim(x) |
행렬을 기준으로 값 채우기
# 행을 기준으로 값이 채워짐 x1 <- matrix(c(1:9),ncol=3,byrow=TRUE) |
|
# 열을 기준으로 값이 채워짐 (기본값) x2 <- matrix(c(1:9),ncol=3) x3 <- matrix(c(1:9),ncol=3,byrow=FALSE)
|
행렬의 이름
# 행렬의 이름 붙이기 x <- matrix(c(1:4),nrow=2,byrow=TRUE, dimnames=list(c('row1','row2'), c('col1','col2'))) |
|
# 행렬의 이름 확인 dimnames(x) |
|
# 행렬의 이름 수정 dimnames(x) <- list(c('r1','r2'), c('c1','c2')) |
|
# 행이름 수정 rownames(x) rownames(x) <- c('row1','row2') |
|
# 열이름 수정 colnames(x) colnames(x) <- c('col1','col2') |
matrix 인덱싱/슬라이싱 [행인덱스,열인덱스]
# 1행 1열 확인 #1행 확인 x[1,]
x[,2]
# 1행의 2열부터 3열까지 x[1,2:3] |
|
# 2행을 제외한 나머지 # 1행,3행 확인 x[c(1,3),]
# 1행,3행, 1열,3열 확인 x[c(1,3),c(1,3)] |
|
# 'r1'행 확인 |
matrix 값 수정
# 행열의 값 수정 x[1,1] <- 10 x |
matrix 연산
# matrix값 연산 x <- matrix(c(1:4),ncol=2) |
|
# matrix끼리 연산 x + x x - x x / x x * x |
matrix 곱(%/%)
x %*% x |
전치행렬
# 행과 열의 위치를 바꾼다. t(x) |
역행렬
solve(x) |
단위행렬
x %*% solve(x) |
행렬결합
# 열결합(행의 수가 맞아야한다.) x <- matrix(c(1:9),nrow=3) y <- matrix(c(1:9),nrow=3) cbind(x,y) |
|
# 행결합(열의 수가 맞아야한다.) rbind(x,y) |
행렬의 위치를 바꾸기
# 열을 추가한 후에 열의 위치를 바꾸고 싶을 때 m <- cbind(1, 1:7) m m <- cbind(m, 8:14)[, c(1, 3, 2)] m |
'컴퓨터 > R' 카테고리의 다른 글
R - 자료형 ⑤ factor(펙터) (0) | 2020.04.09 |
---|---|
R - 자료형 ④ array(배열) (0) | 2020.04.09 |
R - 자료형 ② list(리스트) (0) | 2020.04.08 |
R - 자료형 ① vector(벡터) (0) | 2020.04.08 |
R - 변수 / 숫자·문자형 / 연산자 / NA와 NULL (0) | 2020.04.08 |