A.1 Função dim()
Podemos converter um vetor atômico em uma arranjo de n
dimensões através do atributo da dimensão de um objeto. Este atributo pode ser alterado pela função dim()
. Para fazer isso, definimos o atributo dim
(de dimensão) com um vetor numérico com os tamanhos para cada dimensão. O R reorganizará os elementos do vetor de acordo com as dimensões.
v <- vetor <- 1:12
length(v)
#> [1] 12
attributes(v)
#> NULL
typeof(v)
#> [1] "integer"
# conversão de vetor para matriz
dim(v) <- c(3, 4) # 1a dimensão: linhas , 2a dimensão: colunas
# v é vector?
is.vector(v)
#> [1] FALSE
# v é matrix?
is.matrix(v)
#> [1] TRUE
# classe de vetor
class(v)
#> [1] "matrix"
attributes(v)
#> $dim
#> [1] 3 4
v
#> [,1] [,2] [,3] [,4]
#> [1,] 1 4 7 10
#> [2,] 2 5 8 11
#> [3,] 3 6 9 12
# invertendo as dimensões
dim(v) <- c(4, 3)
v
#> [,1] [,2] [,3]
#> [1,] 1 5 9
#> [2,] 2 6 10
#> [3,] 3 7 11
#> [4,] 4 8 12
O R usa o primeiro elemento de dim()
para o número de linhas e o segundo para o número de colunas. De forma geral, em operações que usam linhas e colunas, as linhas vem sempre em primeiro lugar.
Note como os valores de v
foram distribuídos na matriz com 3 linhas e 4 colunas. O R sempre preenche a matriz ao longo das colunas.
Para mais controle na forma como R reorganiza os dados em linhas e colunas, podemos utilizar a função matrix()
ou array()
. Elas fazem a mesma coisa que a dim()
porém com argumentos mais versáteis para estruturar uma matrix
.