Saltar al contenido principal

Tutorial de matrices en R

Aprende todo sobre las matrices en R: cómo nombrar filas y columnas, acceder a elementos y realizar operaciones como suma, resta, multiplicación y división.
· 7 min leer

Explora con IA

Las matrices son objetos cuyas entradas se organizan en una estructura bidimensional, generalmente con elementos numéricos para realizar distintos cálculos.

Por ejemplo, fíjate en la matriz siguiente.

      [,1] [,2] [,3]
[1,]    5    6    7
[2,]    8    9   10
[3,]   11   12   13

La matriz anterior tiene 3 filas y 3 columnas.

En R, una matriz se puede crear con "matrix()".

La sintaxis de una matriz en R es la siguiente:

matrix(value, nrow, ncol, byrow, dimnames)

Los parámetros anteriores se definen así:

  1. value: especifica el vector de entrada; cada valor del vector será un elemento de la matriz.
  2. nrow: indica el número de filas de la matriz.
  3. ncol: indica el número de columnas de la matriz.
  4. byrow: valor booleano TRUE o FALSE. Si es TRUE, los elementos se rellenan por filas; si es FALSE, se rellenan por columnas.
  5. dimnames: permite dar nombre a las filas y columnas de la matriz.

Veamos un ejemplo donde "mat" es el nombre de una matriz cuyo vector de entrada en c contiene los valores 8, 4, 5, 6, 7, 9. También se especifica el número de filas, es decir, "nrow" igual a 2, y "ncol" igual a 3, lo que da una matriz de dimensión 2 × 3. Además, los elementos se rellenan por filas, es decir, el vector de entrada se vuelca fila a fila.

mat = matrix(c(8,4,5,6,7,9),nrow = 2, ncol = 3,byrow = TRUE)
print(mat)

La salida del código anterior muestra tres columnas y dos filas, con los elementos rellenados por filas.

      [,1]  [,2] [,3]
[1,]    8    4    5
[2,]    6    7    9

Nombrar filas y columnas

Creemos una matriz con los elementos del 1 al 9 y 3 filas. Además, asignaremos nombres a filas y columnas con los vectores que van de r1 a r3 y de c1 a c3.

mat <- matrix(1:9,  nrow = 3,dimnames = list(c("r1","r2","r3"), c("c1","c2","c3")))
mat
    c1    c2    c3
r1    1    4    7
r2    2    5    8
r3    3    6    9

La salida anterior muestra que los elementos del 1 al 9 se han rellenado por columnas. También se observan las etiquetas de filas (r1 a r3) y columnas (c1 a c3).

Acceder a elementos de una matriz

La matriz siguiente se llama "mat" y tiene 3 filas y 3 columnas.

    c1    c2    c3
r1    1    4    7
r2    2    5    8
r3    3    6    9

Para acceder a elementos individuales, utiliza el nombre de la matriz seguido de corchetes con los índices de fila y columna.

  • Para acceder al elemento 5 de la matriz:
    mat[2,2]
  • Para acceder al elemento 6 de la matriz:
    mat[3,2]
  • Para acceder a toda la primera columna, es decir, [1 2 3]:
    mat[,1]
  • Para acceder a toda la segunda fila, es decir, [2 5 8]:
    mat[2,]

Operaciones con matrices

Suma y resta de matrices

Condición: para sumar o restar matrices, deben tener la misma dimensión; es decir, el mismo número de filas y columnas. Por ejemplo:

Las matrices mat1 y mat2 de abajo son de 3 × 3; el número de filas y columnas coincide en ambas.

mat1 <- matrix(c(5,10,15,20,25,30,35,40,45), nrow = 3)
print(mat1)

mat2 <- matrix(c(50,55,60,65,70,75,80,85,90), nrow = 3)
print(mat2)
     [,1] [,2] [,3]
[1,]    5   20   35
[2,]   10   25   40
[3,]   15   30   45
     [,1] [,2] [,3]
[1,]   50   65   80
[2,]   55   70   85
[3,]   60   75   90

Arriba se imprimen las matrices, con las entradas rellenadas por columnas.

add_output <- mat1 + mat2
cat("Addition","\n")
print(add_output)


sub_output <- mat1 - mat2
cat("Subtraction","\n")
print(sub_output)
Addition
     [,1] [,2] [,3]
[1,]   55   85  115
[2,]   65   95  125
[3,]   75  105  135
Subtraction
     [,1] [,2] [,3]
[1,]  -45  -45  -45
[2,]  -45  -45  -45
[3,]  -45  -45  -45

En la salida de la suma y la resta, cada elemento de mat1 se suma o se resta con el elemento correspondiente de mat2. Por ejemplo, en la suma, la entrada de la fila 1 y columna 1 (5 en mat1) se suma con la de la fila 1 y columna 1 en mat2 (50) para obtener 55. Lo mismo se aplica al resto de entradas tanto en la suma como en la resta.

Multiplicación y división de matrices

Condición: para la multiplicación y la división elemento a elemento, el número de filas y columnas debe coincidir; es decir, las dimensiones han de ser iguales.

Multiplicación de matrices

Veamos un ejemplo con dos matrices llamadas mat1 y mat2, ambas de 3 filas y 2 columnas. Tienen seis elementos rellenados por columnas; cada matriz es de dimensión 3 × 2.

mat1<- matrix(c(2,4,6,8,10,12), nrow = 3,ncol =2)
print(mat1)

mat2 <- matrix(c(14,16,18,20,22,24), nrow = 3,ncol=2)
print(mat2)

final <- mat1 * mat2
print('------------------')
cat("Multiplication","\n")
print(final)
     [,1] [,2]
[1,]    2    8
[2,]    4   10
[3,]    6   12
     [,1] [,2]
[1,]   14   20
[2,]   16   22
[3,]   18   24
-----------------
Multiplication
     [,1] [,2]
[1,]   28  160
[2,]   64  220
[3,]  108  288

La salida muestra la multiplicación elemento a elemento entre mat1 y mat2. Por ejemplo, "mat1[1][1]" (2) se multiplica por "mat2[1][1]" (14) para obtener 28. El mismo proceso se aplica a todos los elementos; por último, "mat1[3][2]" (12) por "mat2[3][2]" (24) da 288.

División de matrices

Veamos ahora la división elemento a elemento con las mismas dimensiones (3 filas y 2 columnas).

mat1<- matrix(c(2,4,6,8,10,12), nrow = 3,ncol =2)
print(mat1)

mat2 <- matrix(c(14,16,18,20,22,24), nrow = 3,ncol=2)
print(mat2)
final <- mat1 / mat2
print('--------------')
cat("Division","\n")
print(final)
   [,1] [,2]
[1,]    2    8
[2,]    4   10
[3,]    6   12
     [,1] [,2]
[1,]   14   20
[2,]   16   22
[3,]   18   24
--------------
Division
          [,1]      [,2]
[1,] 0.1428571 0.4000000
[2,] 0.2500000 0.4545455
[3,] 0.3333333 0.5000000

La salida muestra la división elemento a elemento entre mat1 y mat2. Por ejemplo, "mat1[1][1]" (2) se divide entre "mat2[1][1]" (14) y da 0.1428571. Del mismo modo, "mat1[3][2]" (12) entre "mat2[3][2]" (24) da 0.5000000.

¡Enhorabuena!

¡Has llegado al final de este tutorial!

En este tutorial has aprendido todo sobre las matrices en R: cómo nombrar filas y columnas, cómo acceder a elementos y cómo realizar operaciones como suma, resta, multiplicación y división.

Si quieres seguir aprendiendo R, apúntate al curso Introduction to R de DataCamp.

Temas

Relacionado

Tutorial

Tutorial de Subconjuntos en R