[R] 자료 객체 (3): 배열 (array)
2018. 6. 3. 21:00
이 글에서는 R의 자료 객체(data objects) 중 배열에 대해 다뤄보고자 한다.
배열
- 배열은 동일한 유형의 데이터로 구성된 2차원 이상의 데이터이다. R에서 행렬은 2차원 객체로 정의되는 데 비해, 배열은 그 이상의 차원을 가질 수 있다.
- 예컨대 2 * 2 * 2 배열의 경우, 2 * 2 매트릭스가 두 개 존재한다고 생각하면 된다.
- 배열의 차원은 dim() 함수로 확인 가능
- 배열의 차원과 벡터의 길이가 맞지 않으면 오류가 출력된다. 이를테면 아래의 코드 확인.
z <- 1 : 1500
dim(z) <- c(3, 5, 100)
aa <- 1 : 24
dim(aa) < c(3, 4, 2)
## logical(0)
aa
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
## [24] 24
dim(aa)
## NULL
bb <- 1 : 22
# dim(bb) <- c(3, 4, 2) 에러 출력
cc <- 1 : 26
# dim(cc) <- c(3, 4, 2) 에러 출력
- 배열 생성 방법: array(data = NA, dim = c(), dimnames = NULL)
- dimnames는 배열의 행, 열 따위에 이름을 부여한다.
a <- array(data = 1 : 24, dim = c(3, 4, 2),
dimnames = list(c("r1", "r2", "r3"), c("c1", "c2", "c3", "c4"), c("o1", "o2")))
a # 배열 a 출력
## , , o1
##
## c1 c2 c3 c4
## r1 1 4 7 10
## r2 2 5 8 11
## r3 3 6 9 12
##
## , , o2
##
## c1 c2 c3 c4
## r1 13 16 19 22
## r2 14 17 20 23
## r3 15 18 21 24
b <- array(data = 1 : 22, dim = c(3, 4, 2)) # 앞의 예와는 다르게, array 명령어를 사용하면 차원(dim)과 데이터 길이가 맞지 않아도 에러가 없음
b # 배열 b 출력
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 13 16 19 22
## [2,] 14 17 20 1
## [3,] 15 18 21 2
'기타 공부' 카테고리의 다른 글
[R] 문자열 합치기: Paste 함수 (0) | 2018.06.04 |
---|---|
[R] 함수 만들기 기초 (0) | 2018.06.03 |
[R] identical, all equal 함수의 차이 (0) | 2018.05.27 |
[R] 자료 객체 (2): 행렬 matrix (0) | 2018.05.27 |
[R] 자료 객체 (1): 벡터 vector (0) | 2018.05.27 |