R Matriz

El lenguaje R proporciona el tipo de matriz para el estudio del álgebra lineal. Esta estructura de datos es muy similar a los arreglos bidimensionales de otros lenguajes, pero R ofrece soporte de operaciones matriciales a nivel de lenguaje.

Los elementos de una matriz pueden ser números, símbolos o expresiones matemáticas.

UnaM x Nmatriz es unM (row) filasyN columnas (column)arreglo rectangular formado por elementos.

A continuación se muestra una matriz de 2 filas y 3 columnas compuesta por 6 elementos numéricos:

La matriz en R se puede crear con la función `matrix()`. El formato de sintaxis es el siguiente:

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)

Descripción de parámetros:

  • dataVector, los datos de la matriz

  • nrowNúmero de filas

  • ncolNúmero de columnas

  • byrowValor lógico: si es FALSE, se organiza por columnas; si es TRUE, se organiza por filas.

  • dimnameEstablecer los nombres de filas y columnas

Crear una matriz numérica:

Ejemplo

# si byrow es TRUE, los elementos se organizan por filas
M <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(M)

# si Ebyrow es FALSE, los elementos se organizan por columnas
N <- matrix(c(3:14), nrow = 4, byrow = FALSE)
print(N)

# Definir los nombres de filas y columnas
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")

P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)

Al ejecutar el código anterior, el resultado es:

[,1] [,2] [,3]
[1,]    3    4    5
[2,]    6    7    8
[3,]    9   10   11
[4,]   12   13   14
     [,1] [,2] [,3]
[1,]    3    7   11
[2,]    4    8   12
[3,]    5    9   13
[4,]    6   10   14
     col1 col2 col3
row1    3    4    5
row2    6    7    8
row3    9   10   11
row4   12   13   14

Matriz transpuesta

Las matrices en R proporcionant()función, que puede intercambiar filas y columnas de la matriz.

Por ejemplo, si hay una matriz de m filas y n columnas, usando la función t() se puede convertir en una matriz de n filas y m columnas.

Ejemplo

# Crear una matriz de 2 filas y 3 columnas
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
print(M)
     [,1] [,2] [,3]
[1,]    2    6    5
[2,]    1   10    4
# Convertir en una matriz de 3 filas y 2 columnas
print(t(M))

Al ejecutar el código anterior, el resultado es:

     [,1] [,2] [,3]
[1,]    2    6    5
[2,]    1   10    4
[1] "-----转换-----"
     [,1] [,2]
[1,]    2    1
[2,]    6   10
[3,]    5    4

Acceder a los elementos de la matriz

Si se desea obtener los elementos de la matriz, se puede usar el índice de columna y el índice de fila del elemento, similar a coordenadas.

Ejemplo

# Definir los nombres de filas y columnas
rownames = c("row1", "row2", "row3", "row4")
colnames = c("col1", "col2", "col3")

# Crear la matriz
P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
print(P)
# Obtener el elemento de la primera fila y tercera columna
print(P[1,3])

# Obtener el elemento de la cuarta fila y segunda columna
print(P[4,2])

# Obtener la segunda fila
print(P[2,])

# Obtener la tercera columna
print(P[,3])

Al ejecutar el código anterior, el resultado es:

col1 col2 col3
row1    3    4    5
row2    6    7    8
row3    9   10   11
row4   12   13   14
[1] 5
[1] 13
col1 col2 col3 
    6    7    8 
row1 row2 row3 row4 
    5    8   11   14 

Cálculo con matrices

Las matrices del mismo tamaño (con el mismo número de filas y columnas) pueden sumarse o restarse entre sí; concretamente, se suman o restan los elementos en cada posición. La multiplicación de matrices es más compleja. Dos matrices se pueden multiplicar si y solo si el número de columnas de la primera matriz es igual al número de filas de la segunda.

Suma y resta de matrices

Ejemplo

# Crear una matriz de 2 filas y 3 columnas
matrix1 <- matrix(c(7, 9, -1, 4, 2, 3), nrow = 2)
print(matrix1)

matrix2 <- matrix(c(6, 1, 0, 9, 3, 2), nrow = 2)
print(matrix2)

# Sumar las dos matrices
result <- matrix1 + matrix2
cat("Resultado de la suma:","\n")
print(result)

# Restar las dos matrices
result <- matrix1 - matrix2
cat("Resultado de la resta:","\n")
print(result)

Al ejecutar el código anterior, el resultado es:

[,1] [,2] [,3]
[1,]    7   -1    2
[2,]    9    4    3
     [,1] [,2] [,3]
[1,]    6    0    3
[2,]    1    9    2
相加结果: 
     [,1] [,2] [,3]
[1,]   13   -1    5
[2,]   10   13    5
相减结果: 
     [,1] [,2] [,3]
[1,]    1   -1   -1
[2,]    8   -5    1

Multiplicación y división de matrices

Ejemplo

# Crear una matriz de 2 filas y 3 columnas
matrix1 <- matrix(c(7, 9, -1, 4, 2, 3), nrow = 2)
print(matrix1)

matrix2 <- matrix(c(6, 1, 0, 9, 3, 2), nrow = 2)
print(matrix2)

# Multiplicar las dos matrices
result <- matrix1 * matrix2
cat("Resultado de la multiplicación:","\n")
print(result)

# Dividir las dos matrices
result <- matrix1 / matrix2
cat("Resultado de la división:","\n")
print(result)

Al ejecutar el código anterior, el resultado es:

[,1] [,2] [,3]
[1,]    7   -1    2
[2,]    9    4    3
     [,1] [,2] [,3]
[1,]    6    0    3
[2,]    1    9    2
相乘结果: 
     [,1] [,2] [,3]
[1,]   42    0    6
[2,]    9   36    6
相除结果: 
         [,1]      [,2]      [,3]
[1,] 1.166667      -Inf 0.6666667
[2,] 9.000000 0.4444444 1.5000000
Otras extensiones