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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow