R Language
Matrices
Buscar..
Introducción
Matrices almacenan datos
Creando matrices
Bajo el capó, una matriz es un tipo especial de vector con dos dimensiones. Como un vector, una matriz solo puede tener una clase de datos. Puede crear matrices utilizando la función de matrix
como se muestra a continuación.
matrix(data = 1:6, nrow = 2, ncol = 3)
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Como puede ver, esto nos da una matriz de todos los números del 1 al 6 con dos filas y tres columnas. El parámetro de data
toma un vector de valores, nrow
especifica el número de filas en la matriz y ncol
especifica el número de columnas. Por convención la matriz se rellena por columna. El comportamiento predeterminado se puede cambiar con el parámetro byrow
como se muestra a continuación:
matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
Las matrices no tienen que ser numéricas, cualquier vector puede transformarse en una matriz. Por ejemplo:
matrix(data = c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] TRUE FALSE
## [2,] TRUE FALSE
## [3,] TRUE FALSE
matrix(data = c("a", "b", "c", "d", "e", "f"), nrow = 3, ncol = 2)
## [,1] [,2]
## [1,] "a" "d"
## [2,] "b" "e"
## [3,] "c" "f"
Las matrices de vectores similares pueden almacenarse como variables y luego llamarse más tarde. Las filas y columnas de una matriz pueden tener nombres. Puedes rownames
usando las funciones rownames
y colnames
. Como se muestra a continuación, las filas y columnas inicialmente no tienen nombres, lo que se denota mediante NULL
. Sin embargo, puedes asignarles valores.
mat1 <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
rownames(mat1)
## NULL
colnames(mat1)
## NULL
rownames(mat1) <- c("Row 1", "Row 2")
colnames(mat1) <- c("Col 1", "Col 2", "Col 3")
mat1
## Col 1 Col 2 Col 3
## Row 1 1 2 3
## Row 2 4 5 6
Es importante tener en cuenta que, de manera similar a los vectores, las matrices solo pueden tener un tipo de datos. Si intenta especificar una matriz con múltiples tipos de datos, los datos serán obligados a la clase de datos de orden superior.
La class
, is
, y as
funciones se pueden usar para verificar y forzar estructuras de datos de la misma manera que se usaron en los vectores en la clase 1.
class(mat1)
## [1] "matrix"
is.matrix(mat1)
## [1] TRUE
as.vector(mat1)
## [1] 1 4 2 5 3 6