컴퓨터/R

R - 자료형 ③ matrix(행렬)

해피밀세트 2020. 4. 9. 17:02

 

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열 확인
x[1,1]

#1 확인

x[1,]


#2
확인

x[,2]


# -열을 제외한 1행 전부
x[1,-2]

 

# 1행의 2열부터 3열까지

x[1,2:3]

# 2행을 제외한 나머지
x[-2,]

# 1행,3행 확인

x[c(1,3),]

 

# 1행,3행, 1열,3열 확인

x[c(1,3),c(1,3)]

# 'r1'행 확인
x['r1',]

# 'c2'열 확인
x[,'c2']

 

matrix 값 수정

# 행열의 수정

x[1,1] <- 10

x

 

matrix 연산

# matrix값 연산

x <- matrix(c(1:4),ncol=2)
x + 10
x - 10
x * 10
x / 10

# matrix끼리 연산

x + x

x - x

x / x

x * x

 

matrix 곱(%/%)

x %*% x

 

전치행렬

# 행과 열의 위치를 바꾼다.
# 1 2 -> 2 1

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