Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

천선생의 삶

[R] 데이터 유형에 따른 정리(3) - array 본문

Data Analysis/R Basic

[R] 데이터 유형에 따른 정리(3) - array

천선생 2019. 7. 7. 12:00

안녕하세요. 천선생입니다.

 

 지난시간에는 matrix (https://cheon9.tistory.com/8)에 대해 알아보았는데요.

vector와 matrix는 데이터의 기본을 구성하지만, 일차원 혹은 이차원의 데이터만을 품을 수 있다는 단점이 있는데요.

이 포스트에서는 다차원 데이터를 구성하는데 필요한 array 에 대하여 알아보도록 하겠습니다.

 

- ARRAY?

 어레이란 동일 데이터 타입을 갖는 다차원 배열을 의미합니다.

 벌써 세번째로 만나는 동일 데이터 타입으로 구성되는 배열인데요,

간단하게 정리해드리면 동일 데이터 타입에서, 배열의 구분은 다음 표와 같습니다.

1차원 2차원 3차원 이상
벡터 (vector) 매트릭스 (matrix) 어레이 (array)

 

- CODE

 어레이를 저장할 때는, array 라는 함수를 사용합니다.

또한, 배열의 모양을 결정하는 부분에 있어서 dim 이라는 인자를 설정하며, 각 dim의 이름을 dimnames 로 설정합니다.

이때 dimnames는 list 로 설정하게 되는데요. list 에 대해서는 다음시간에 바로 알아보겠습니다.

#어레이 저장 예
A <- array(1:27, dim = c(3, 3, 3), # dim 인자는 dimension을 의미하며, 벡터를 입력한다.
           dimnames = list(c('1행', '2행', '3행'), # 각 dimension의 이름을 지정하며, 리스트를 입력한다.
                           c('1열', '2열', '3열'),
                           c('1번어레이', '2번어레이', '3번어레이')))

# , , 1번어레이
# 
# 1열 2열 3열
# 1행   1   4   7
# 2행   2   5   8
# 3행   3   6   9
# 
# , , 2번어레이
# 
# 1열 2열 3열
# 1행  10  13  16
# 2행  11  14  17
# 3행  12  15  18
# 
# , , 3번어레이
# 
# 1열 2열 3열
# 1행  19  22  25
# 2행  20  23  26
# 3행  21  24  27

 

- INDEXING?

 어레이에서도 인덱스를 통하여 원하는 데이터에 접근할 수 있습니다.

다차원 배열이므로 차원의 수만큼의 인덱스를 입력해주는 것이 기본이며,

매트릭스에서의 인덱싱과 같이 입력하지 않은 dimension에 대해서는 모든 값에 접근합니다.

#인덱싱 예 : 차원의 변화에 주목한다.
A <- array(1:27, c(3, 3, 3)) # dimnames의 default값은 NULL이다. 그러나 dim값은 입력하지 않으면 1차원 배열로 저장된다.

A[1, 1, 3] # 1행 1열, 3차원
# 19

A[, 1, 2] # 모든행, 1열, 2차원
# 10 11 12

A[2, , ] #2행, 모든열, 모든차원 : 2차원으로 바뀐다
#       [,1] [,2] [,3]
# [1,]    2   11   20
# [2,]    5   14   23
# [3,]    8   17   26

dim(A) # 어레이의 차원을 확인하는 함수.
Comments