03 março, 2021

Introdução

A ideia do objeto matriz multidimencional (ou array) é similar ao da matriz, a diferença é que agora é um vetor atômico de mais de duas dimensões. Vejamos,

> x <- 1:12; x # Criando um vetor atomico
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12
> attributes(x) # Verificando o atributo de x
## NULL
> sloop::s3_class(x) #Classe do objeto x
## [1] "integer" "numeric"

Criando um Array

> # Adicionando o atributo dim
> dim(x) <- c(2, 3, 2); x # 2 x 3 x 2 = 12 (Comp do vetor x)
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]    7    9   11
## [2,]    8   10   12

Criando um Array

> attributes(x) # Atributo de x
## $dim
## [1] 2 3 2
> sloop::s3_class(x) #classe do objeto
## [1] "array"   "integer" "numeric"

Outra forma de criar um Array

> # Criando um array
> array(1:12, c(2, 3, 2))
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]    7    9   11
## [2,]    8   10   12

Indexação de Array

> x <- array(1:12, c(2, 3, 2)) # Criando um array
> x[1, 1, 1] # Acessando
## [1] 1
> x[1, 1, 1] <- 10; x[, , 1] # Alterando
##      [,1] [,2] [,3]
## [1,]   10    3    5
## [2,]    2    4    6

Bons estudos!