천선생의 삶
[R] 데이터 유형에 따른 정리(3) - array 본문
안녕하세요. 천선생입니다.
지난시간에는 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) # 어레이의 차원을 확인하는 함수.
'Data Analysis > R Basic' 카테고리의 다른 글
[R] 조건문 활용하기 - if, else, if else (0) | 2019.07.10 |
---|---|
[R] 데이터 유형에 따른 정리(5) - dataframe (0) | 2019.07.09 |
[R] 데이터 유형에 따른 정리(4) - list (0) | 2019.07.08 |
[R] 데이터 유형에 따른 정리(2) - matrix (0) | 2019.07.06 |
[R] 데이터 유형에 따른 정리(1) - vector (0) | 2019.07.05 |
Comments