Matrix es un arreglo rectangular de números en filas y columnas. En una array, como sabemos, las filas son las que se ejecutan horizontalmente y las columnas son las que se ejecutan verticalmente. En la programación R, las arrays son estructuras de datos bidimensionales y homogéneas. Estos son algunos ejemplos de arrays:
Crear una array
Para crear una array en R, debe usar la función llamada matrix() . Los argumentos de esta array() son el conjunto de elementos del vector. Tienes que pasar cuántos números de filas y cuántos números de columnas quieres tener en tu array.
Nota: De forma predeterminada, las arrays están ordenadas por columnas.
R
# R program to create a matrix A = matrix( # Taking sequence of elements c(1, 2, 3, 4, 5, 6, 7, 8, 9), # No of rows nrow = 3, # No of columns ncol = 3, # By default matrices are in column-wise order # So this parameter decides how to arrange the matrix byrow = TRUE ) # Naming rows rownames(A) = c("a", "b", "c") # Naming columns colnames(A) = c("c", "d", "e") cat("The 3x3 matrix:\n") print(A)
Producción:
The 3x3 matrix: c d e a 1 2 3 b 4 5 6 c 7 8 9
Creación de arrays especiales
R permite la creación de varios tipos diferentes de arrays con el uso de argumentos pasados a la función matrix().
- Array donde todas las filas y columnas se llenan con una única constante ‘k’:
para crear una array de este tipo, la sintaxis se proporciona a continuación:
Sintaxis: array(k, m, n)
Parámetros:
k: la constante
m: número de filas
n: número de columnas
- Ejemplo:
R
# R program to illustrate # special matrices # Matrix having 3 rows and 3 columns # filled by a single constant 5 print(matrix(5, 3, 3))
- Producción:
[,1] [,2] [,3] [1,] 5 5 5 [2,] 5 5 5 [3,] 5 5 5
- Array diagonal:
Una array diagonal es una array en la que las entradas fuera de la diagonal principal son todas cero. Para crear una array de este tipo, la sintaxis se proporciona a continuación:
Sintaxis: diag(k, m, n)
Parámetros:
k: las constantes/array
m: número de filas
n: número de columnas
- Ejemplo:
R
# R program to illustrate # special matrices # Diagonal matrix having 3 rows and 3 columns # filled by array of elements (5, 3, 3) print(diag(c(5, 3, 3), 3, 3))
- Producción:
[,1] [,2] [,3] [1,] 5 0 0 [2,] 0 3 0 [3,] 0 0 3
- Array identidad: array
cuadrada en la que todos los elementos de la diagonal principal son unos y todos los demás elementos son ceros. Para crear una array de este tipo, la sintaxis se proporciona a continuación:
Sintaxis: diag(k, m, n)
Parámetros:
k: 1
m: número de filas
n: número de columnas
- Ejemplo:
R
# R program to illustrate # special matrices # Identity matrix having # 3 rows and 3 columns print(diag(1, 3, 3))
- Producción:
[,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1
Métricas de array
Las métricas de array significan que una vez que se crea una array, entonces
- ¿Cómo se puede saber la dimensión de la array?
- ¿Cómo puedes saber cuántas filas hay en la array?
- ¿Cuántas columnas hay en la array?
- ¿Cuántos elementos hay en la array? son las preguntas que generalmente queríamos responder.
Ejemplo:
R
# R program to illustrate # matrix metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) cat("Dimension of the matrix:\n") print(dim(A)) cat("Number of rows:\n") print(nrow(A)) cat("Number of columns:\n") print(ncol(A)) cat("Number of elements:\n") print(length(A)) # OR print(prod(dim(A)))
Producción:
The 3x3 matrix: [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 Dimension of the matrix: [1] 3 3 Number of rows: [1] 3 Number of columns: [1] 3 Number of elements: [1] 9 [1] 9
Accediendo a elementos de una Array
Podemos acceder a los elementos de las arrays usando la misma convención que se sigue en los marcos de datos. Entonces, tendrá una array seguida de un corchete con una coma entre la array. El valor antes de la coma se usa para acceder a las filas y el valor que está después de la coma se usa para acceder a las columnas. Ilustremos esto tomando un código R simple.
Acceso a filas:
R
# R program to illustrate # access rows in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Accessing first and second row cat("Accessing first and second row\n") print(A[1:2, ])
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 Accessing first and second row [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6
Accediendo a las columnas:
R
# R program to illustrate # access columns in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Accessing first and second column cat("Accessing first and second column\n") print(A[, 1:2])
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 Accessing first and second column [, 1] [, 2] [1, ] 1 2 [2, ] 4 5 [3, ] 7 8
Acceso a elementos de una array:
R
# R program to illustrate # access an entry in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Accessing 2 print(A[1, 2]) # Accessing 6 print(A[2, 3])
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 [1] 2 [1] 6
Accediendo a Subarrays:
Podemos acceder a subarray en una array usando el operador de dos puntos (:) .
R
# R program to illustrate # access submatrices in a matrix # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) cat("Accessing the first three rows and the first two columns\n") print(A[1:3, 1:2])
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 Accessing the first three rows and the first two columns [, 1] [, 2] [1, ] 1 2 [2, ] 4 5 [3, ] 7 8
Modificando elementos de una Array
En R se pueden modificar los elementos de las arrays mediante una asignación directa.
Ejemplo:
R
# R program to illustrate # editing elements in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Editing the 3rd rows and 3rd column element # from 9 to 30 # by direct assignments A[3, 3] = 30 cat("After edited the matrix\n") print(A)
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 After edited the matrix [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 30
Concatenación de arrays
La concatenación de arrays se refiere a la fusión de filas o columnas de una array existente.
Concatenación de una fila:
la concatenación de una fila a una array se realiza mediante rbind() .
R
# R program to illustrate # concatenation of a row in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Creating another 1x3 matrix B = matrix( c(10, 11, 12), nrow = 1, ncol = 3 ) cat("The 1x3 matrix:\n") print(B) # Add a new row using rbind() C = rbind(A, B) cat("After concatenation of a row:\n") print(C)
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 The 1x3 matrix: [, 1] [, 2] [, 3] [1, ] 10 11 12 After concatenation of a row: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 [4, ] 10 11 12
Concatenación de una columna:
La concatenación de una columna a una array se realiza mediante cbind() .
R
# R program to illustrate # concatenation of a column in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Creating another 3x1 matrix B = matrix( c(10, 11, 12), nrow = 3, ncol = 1, byrow = TRUE ) cat("The 3x1 matrix:\n") print(B) # Add a new column using cbind() C = cbind(A, B) cat("After concatenation of a column:\n") print(C)
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 The 3x1 matrix: [, 1] [1, ] 10 [2, ] 11 [3, ] 12 After concatenation of a column: [, 1] [, 2] [, 3] [, 4] [1, ] 1 2 3 10 [2, ] 4 5 6 11 [3, ] 7 8 9 12
Inconsistencia de dimensión: tenga en cuenta que debe asegurarse de la consistencia de las dimensiones entre la array antes de realizar esta concatenación de array.
R
# R program to illustrate # Dimension inconsistency in metrics concatenation # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("The 3x3 matrix:\n") print(A) # Creating another 1x3 matrix B = matrix( c(10, 11, 12), nrow = 1, ncol = 3, ) cat("The 1x3 matrix:\n") print(B) # This will give an error # because of dimension inconsistency C = cbind(A, B) cat("After concatenation of a column:\n") print(C)
Producción:
The 3x3 matrix: [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 The 1x3 matrix: [, 1] [, 2] [, 3] [1, ] 10 11 12 Error in cbind(A, B) : number of rows of matrices must match (see arg 2)
Eliminación de filas y columnas de una Array
Para eliminar una fila o una columna, en primer lugar, debe acceder a esa fila o columna y luego insertar un signo negativo antes de esa fila o columna. Indica que tuviste que eliminar esa fila o columna.
Eliminación de fila:
R
# R program to illustrate # row deletion in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("Before deleting the 2nd row\n") print(A) # 2nd-row deletion A = A[-2, ] cat("After deleted the 2nd row\n") print(A)
Producción:
Before deleting the 2nd row [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 After deleted the 2nd row [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 7 8 9
Eliminación de columna:
R
# R program to illustrate # column deletion in metrics # Create a 3x3 matrix A = matrix( c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3, byrow = TRUE ) cat("Before deleting the 2nd column\n") print(A) # 2nd-row deletion A = A[, -2] cat("After deleted the 2nd column\n") print(A)
Producción:
Before deleting the 2nd column [, 1] [, 2] [, 3] [1, ] 1 2 3 [2, ] 4 5 6 [3, ] 7 8 9 After deleted the 2nd column [, 1] [, 2] [1, ] 1 3 [2, ] 4 6 [3, ] 7 9
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA