티스토리 뷰

R 에서 데이터를 다루기 위해서는 필수적으로 알아야 하는게 matrix 이다. matrix <--> data.frame <--> tibble 로 왔다갔다 할 줄 알아야 데이터 처리에 능하게 된다. matrix 사용법은 간단하다. 어려운 설정이 거의 없어서 아래 예제만 보면 대략 이해할 수 있다.

matrix(c(0.05, 0.15, 0.0, 0.10, 0.25, 0.25, 0, 0.1, 0.1))
#      [,1]
# [1,] 0.05
# [2,] 0.15
# [3,] 0.00
# [4,] 0.10
# [5,] 0.25
# [6,] 0.25
# [7,] 0.00
# [8,] 0.10
# [9,] 0.10

matrix(c(0.05, 0.15, 0.0, 0.10, 0.25, 0.25, 0, 0.1, 0.1), ncol = 3)
#      [,1] [,2] [,3]
# [1,] 0.05 0.10  0.0
# [2,] 0.15 0.25  0.1
# [3,] 0.00 0.25  0.1

matrix(c(0.05, 0.15, 0.0, 0.10, 0.25, 0.25, 0, 0.1, 0.1), ncol = 3, byrow = T)
#      [,1] [,2] [,3]
# [1,] 0.05 0.15 0.00
# [2,] 0.10 0.25 0.25
# [3,] 0.00 0.10 0.10
 

R을 이용한 데이터 처리 & 분석 실무: 행렬 생성

 

thebook.io

 

dimnames 속성을 지정하면 row 이름과 col 이름을 정할 수 있는데, list 형으로 입력해야 한다. list 안에 2개를 입력하면 하나는 row 이름으로 두번째는 col 이름으로 지정된다. 아래와 같이 출력된다.

matrix(c(0.05, 0.15, 0.0, 0.10, 0.25, 0.25, 0, 0.1, 0.1), 
       ncol = 3,
       dimnames = list(c('row-name-1', 'row-name-2', 'row-name-3'), 
                       c('col-name-1', 'col-name-2', 'col-name-3')))
                       
# 출력결과
#           col-name-1 col-name-2 col-name-3
#row-name-1       0.05       0.10        0.0
#row-name-2       0.15       0.25        0.1
#row-name-3       0.00       0.25        0.1

 

col 별로 평균을 구하고 싶으면 apply 명령어로 수행한다. 

m = matrix(c(0.05, 0.15, 0.0, 0.10, 0.25, 0.25, 0, 0.1, 0.1), ncol = 3)
#      [,1] [,2] [,3]
# [1,] 0.05 0.10  0.0
# [2,] 0.15 0.25  0.1
# [3,] 0.00 0.25  0.1

apply(m, 2, mean)
# [1] 0.06666667 0.20000000 0.06666667

 

일부 행 혹은 열을 선택해서 출력하고 싶을 때는 아래처럼 입력한다.

# 전체 행렬
#      [,1] [,2] [,3]
# [1,] 0.05 0.10  0.0
# [2,] 0.15 0.25  0.1
# [3,] 0.00 0.25  0.1


# 열(col) 1, 3번째 출력
m[, c(1,3)]
#      [,1] [,2]
# [1,] 0.05  0.0
# [2,] 0.15  0.1
# [3,] 0.00  0.1


# 행(row) 1, 3번째 출력.
m[c(1,3),]
#      [,1] [,2] [,3]
# [1,] 0.05 0.10  0.0
# [2,] 0.00 0.25  0.1
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함