2.6 Matrices y arreglos

Las matrices y los arreglos son vectores con atributos adicionales llamados dimensiones. Las matrices tienen dos dimensiones, formando una estructura rectangular con renglones y columnas. A su vez, los arreglos tienen más de dos dimensiones.

Al igual que los vectores, las matrices y los arreglos son estructuras de datos homogéneas. Es decir, solo pueden estar formadas por un tipo de datos. Comúnmente se construyen utilizando la función matrix(), especificando el número de renglones y columnas.

mim <- matrix(1:15, nrow = 3, ncol = 5)
mim2 <- matrix(1:15, nrow = 5, ncol = 3)

Los elementos se asignan de arriba a abajo y de izquierda a derecha. Y se pueden asignar nombres tanto a los renglones como a las columnas.

colnames(mim) <- c("c1", "c2", "c3", "c4", "c5")
rownames(mim) <- c("r1", "r2", "r3")
mim 
##    c1 c2 c3 c4 c5
## r1  1  4  7 10 13
## r2  2  5  8 11 14
## r3  3  6  9 12 15

Para conocer las dimensiones de la matriz utilizamos la función dim() o podemos preguntar directamente por su número de filas o de columnas.

dim(mim)
# [1] 3 5
nrow(mim)
# [1] 3
ncol(mim)
# [1] 5

En las matrices también podemos observar las operaciones vectorizadas. Además, hay algunas funciones especialmente desarrolladas para trabajar con matrices.

mim * 3 # Operación vectorizada
##    c1 c2 c3 c4 c5
## r1  3 12 21 30 39
## r2  6 15 24 33 42
## r3  9 18 27 36 45
rowSums(mim) # Suma de las filas de una matriz
## r1 r2 r3 
## 35 40 45
colSums(mim) # Suma de las columnas de una matriz
## c1 c2 c3 c4 c5 
##  6 15 24 33 42
t(mim2) + mim # Transposición
##    c1 c2 c3 c4 c5
## r1  2  6 10 14 18
## r2  8 12 16 20 24
## r3 14 18 22 26 30

Para construir arreglos se utiliza la función array(), especificando las dimensiones que lo conforman.

mia <- array(1:16, dim = c(2, 4, 2))
mia
## , , 1
## 
##      [,1] [,2] [,3] [,4]
## [1,]    1    3    5    7
## [2,]    2    4    6    8
## 
## , , 2
## 
##      [,1] [,2] [,3] [,4]
## [1,]    9   11   13   15
## [2,]   10   12   14   16