배열 만들기
벡터 = 1차원, 행렬 = 2차원, 배열 = n차원
array(data, dim=c(x, y, z), dimnames=list(x=c(), y=c(), z=c()) )
dim=c(x,y,z,...)⇒ 행의 갯수, 열의 갯수, 면의 갯수, \cdotsdimnames()- 행의 이름 ⇒
- 열의 이름 ⇒
r
array(seq(2, 32, 2), dim=c(2,2,2,2))
r
, , 1, 1
[,1] [,2]
[1,] 2 6
[2,] 4 8
, , 2, 1
[,1] [,2]
[1,] 10 14
[2,] 12 16
, , 1, 2
[,1] [,2]
[1,] 18 22
[2,] 20 24
, , 2, 2
[,1] [,2]
[1,] 26 30
[2,] 28 32
예시: 속성명 붙이기
r
arr = array(c(1:12), dim=c(3,2,2),
dimnames=list(x=c(1,2,3),y=c(1,2),z=c(1,2)))
r
, , z = 1
y
x 1 2
1 1 4
2 2 5
3 3 6
, , z = 2
y
x 1 2
1 7 10
2 8 11
3 9 12
차원 확인
dim()이용하기.
r
dim(arr)
배열 간 연산
- 같은 크기의 배열 간 사칙연산 가능
원소끼리의 연산
- 사칙연산 :
+, -, /, * - 나머지 :
%% - 제곱 :
^
배열끼리의 연산
%*%: 원소끼리 곱한 것의 합으로 생각. 내적과 비슷하다.
r
arr.x = array(, c(2,2,2))
arr.y = array(, c(2,2,2))
arr.x %*/% arr.y
sum(arr.x*arr.y)
배열의 인덱싱
- 행렬과 기본적으로 같다.
Arr[a, b, c]: 각 차원을 a, b, c번째 인덱스로 사용- 앞에
-가 붙으면 해당 차원을 제외.