Un array es una estructura de datos capaz de almacenar datos multidimensionales. En R, un array es un objeto que puede contener datos de dos o más dimensiones. Por ejemplo, en matrices cuadradas puedes tener dos filas y dos columnas, y la dimensión puede llegar a cinco. Los arrays solo almacenan valores de un mismo tipo de dato. Los datos pueden tener más de una dimensión, con filas, columnas y dimensiones de cierta longitud.
Creación de un array
La función array() crea un array a partir de un vector (los números) y las dimensiones ("dim") indicadas como argumento.
Veamos un ejemplo donde se crean dos vectores llamados "array1" y "array2".
vector1 = c (5,10,15,20)
vector2 = c (25,30,35,40,45,50,55,60)Con la tecnología de
Puedes usar los dos vectores anteriores como entrada de un array con dimensión 4 * 4; así se crean dos matrices o datos bidimensionales.
final = array (c (array1, array2),dim =c(4,4,3))print(final)Con la tecnología de
La salida del código anterior es la siguiente:
,,1[,1][,2][,3][,4][1,]525455[2,]10305010[3,]15355515[4,]20406020,,2[,1][,2][,3][,4][1,]2545525[2,]30501030[3,]35551535[4,]40602040,,3[,1][,2][,3][,4][1,]4552545[2,]50103050[3,]55153555[4,]60204060Con la tecnología de
Vamos a renombrar nuestro array como "Arr1" y "Arr2" usando "matrix.names". Además, cambiaremos los nombres de filas a ("row1","row2") y los de columnas a ("column1","column2","column3"). La dimensión de la matriz es de 2 filas y 3 columnas.
array1 = c (9,18)
array2 = c (27,36)
r.names = c ("column1","column2","column3")
c.names = c ("row1","row2")
m.names = c ("Arr1","Arr2")
final = array (c (array1,array2), dim=c (2,3,2), dimnames=list(c.names, r.names, m.names))print(final)Con la tecnología de
La salida del código anterior muestra dos filas y tres columnas. Además, el valor de la columna se repite cuando se agota:
,, Arr1
column1 column2 column3
row1 9279
row2 183618,, Arr2
column1 column2 column3
row1 27927
row2 361836Con la tecnología de
Indexación en un array
Un array contiene elementos en varias dimensiones y cada elemento puede accederse para operar con él. Los elementos se indexan con "[]"; en un array tipo matriz con filas y columnas, se indexa como: mat[row, column]
Tomemos un ejemplo en el que el array contiene un vector de entrada del 1 al 9. Hay solo tres filas y tres columnas, e incluye los valores del 1 al 9. "c.names" es el nuevo nombre de columnas con los valores ('c1', 'c2', 'c3') y 'r.names' son los nuevos nombres de filas ('r1', 'r2', 'r3'), también un vector.
a1= c (1,2,3,4)
a2= c (5,6,7,8,9)
r.names = c ("c1","c2","c3")
c.names = c ("r1","r2","r3")
m.names = c ("first")
arr = array (c (a1,a2), dim=c (3,3,1), dimnames=list(c.names, r.names, m.names))print(arr)Con la tecnología de
Puedes acceder a toda la matriz "arr" con la siguiente sintaxis: "arr[ , ,1]" indica incluir todas las filas y columnas (separadas por comas y espacios). El 1 indica la capa del array "arr" a extraer.
Puedes obtener la segunda fila completa con el siguiente código. En arr[2, ,1] se extrae la segunda fila (espacio para todas las columnas) y 1 indica la capa del array.
Puedes obtener la segunda columna completa con el siguiente código. En arr[,2,1], el espacio con 2 indica la segunda columna, y 1 es la capa a extraer.
apply() forma parte de los paquetes de R y reúne varias funciones que te ayudan a escribir código de forma más sencilla y eficiente. A continuación verás un ejemplo para calcular la suma de dos matrices.
La sintaxis de apply() es: apply(x, margin, function)
Los argumentos indican lo siguiente: x: un array o datos bidimensionales como matrices. margin: indica dónde aplicar la función: c(1) para filas, c(2) para columnas y c(1,2) para filas y columnas. function: función integrada de R o definida por el usuario que se aplicará sobre los datos.
Creemos un vector llamado 'array1' de longitud tres y 'array2' de longitud seis con el siguiente código.
A continuación, array() acepta los dos vectores 'array1' y 'array2' con una dimensión de 3 filas, 3 columnas y crea 2 matrices que se guardan en 'my. Array'.
my.Array <- array(c(array1,array2),dim = c(3,3,2))print(my.Array)Con la tecnología de
,,1[,1][,2][,3][1,]51530[2,]102035[3,]152540,,2[,1][,2][,3][1,]51530[2,]102035[3,]152540Con la tecnología de
El código anterior genera la siguiente salida: se crean dos matrices de 3 × 3 (filas × columnas).
,,1[,1][,2][,3][1,]51530[2,]102035[3,]152540,,2[,1][,2][,3][1,]51530[2,]102035[3,]152540Con la tecnología de
A continuación, apply() se usa para calcular la suma de las dos matrices por columnas.
Un tutorial sobre bucles en R que examina las construcciones disponibles en R para realizar bucles. Descubra alternativas utilizando la función de vectorización de R.
Descubre cómo acceder a los datos de tu marco de datos con el subconjunto. Aprende a hacer subconjuntos utilizando paréntesis o la función subconjunto() de R.
Averigua cómo importar datos a R, incluidos archivos CSV, JSON, Excel, HTML, bases de datos, SAS, SPSS, Matlab y otros, utilizando los conocidos paquetes de R.
Un array es una estructura de datos capaz de almacenar datos multidimensionales. En R, un array es un objeto que puede contener datos de dos o más dimensiones. Por ejemplo, en matrices cuadradas puedes tener dos filas y dos columnas, y la dimensión puede llegar a cinco. Los arrays solo almacenan valores de un mismo tipo de dato. Los datos pueden tener más de una dimensión, con filas, columnas y dimensiones de cierta longitud.
Creación de un array
La función array() crea un array a partir de un vector (los números) y las dimensiones ("dim") indicadas como argumento.
Veamos un ejemplo donde se crean dos vectores llamados "array1" y "array2".
Puedes usar los dos vectores anteriores como entrada de un array con dimensión 4 * 4; así se crean dos matrices o datos bidimensionales.
La salida del código anterior es la siguiente:
Vamos a renombrar nuestro array como "Arr1" y "Arr2" usando "matrix.names". Además, cambiaremos los nombres de filas a ("row1","row2") y los de columnas a ("column1","column2","column3"). La dimensión de la matriz es de 2 filas y 3 columnas.
La salida del código anterior muestra dos filas y tres columnas. Además, el valor de la columna se repite cuando se agota:
Indexación en un array
Un array contiene elementos en varias dimensiones y cada elemento puede accederse para operar con él. Los elementos se indexan con "[]"; en un array tipo matriz con filas y columnas, se indexa como:
mat[row, column]Tomemos un ejemplo en el que el array contiene un vector de entrada del 1 al 9. Hay solo tres filas y tres columnas, e incluye los valores del 1 al 9. "c.names" es el nuevo nombre de columnas con los valores ('c1', 'c2', 'c3') y 'r.names' son los nuevos nombres de filas ('r1', 'r2', 'r3'), también un vector.
La salida del código anterior es:
Puedes ver que se generan las matrices del 1 al 9 con dimensión 3 × 3 (fila × columna) y que han cambiado los nombres de filas y columnas.
Veamos cómo extraer elementos del array con los siguientes ejemplos.
7
La salida del código anterior es 7. En "arr[1,3,1]" se extrae la fila 1, columna 3, y el 1 indica la primera capa del array "arr".
1
La salida del código anterior es 1.
El código anterior devuelve la siguiente salida: valores en 2 filas, 2 columnas y la primera capa del array "arr".
El código anterior devuelve la siguiente salida con todos los elementos:
El código anterior devuelve la siguiente salida e imprime c1, c2 y c3.
El código anterior devuelve la siguiente salida e imprime r1, r2 y r3.
Creación y suma de matrices
Vamos a crear dos matrices llamadas mat1 y mat2 a partir de 'arr[ , ,1]', copiando todas las filas y columnas de 'arr'.
Suma las dos matrices 'mat1' y 'mat2' y guarda el resultado en final. También se imprime la salida.
La salida muestra que cada fila y columna de mat1 y mat2 se suman elemento a elemento.
apply()
apply() forma parte de los paquetes de R y reúne varias funciones que te ayudan a escribir código de forma más sencilla y eficiente. A continuación verás un ejemplo para calcular la suma de dos matrices.
La sintaxis de apply() es:
apply(x, margin, function)Los argumentos indican lo siguiente:
x: un array o datos bidimensionales como matrices.
margin: indica dónde aplicar la función: c(1) para filas, c(2) para columnas y c(1,2) para filas y columnas.
function: función integrada de R o definida por el usuario que se aplicará sobre los datos.
Creemos un vector llamado 'array1' de longitud tres y 'array2' de longitud seis con el siguiente código.
A continuación, array() acepta los dos vectores 'array1' y 'array2' con una dimensión de 3 filas, 3 columnas y crea 2 matrices que se guardan en 'my. Array'.
El código anterior genera la siguiente salida: se crean dos matrices de 3 × 3 (filas × columnas).
A continuación, apply() se usa para calcular la suma de las dos matrices por columnas.
Como ves, se usa c(2) como margen y se suman los elementos por columnas en "my. Array" para obtener el siguiente resultado.
Por último, apply() se usa para calcular la suma de las dos matrices por filas.
De nuevo, con c(1) como margen se suman los elementos por filas en "my. Array" para obtener el siguiente resultado.
¡Enhorabuena!
¡Has llegado al final de este tutorial!
Has aprendido qué es un array en R, cómo crearlo e indexarlo con ejemplos, además de cómo crear y sumar matrices y usar la función apply().
Si quieres seguir aprendiendo R, haz el curso de DataCamp Introduction to R.
Referencias:
R-Arrays
R Array Function and Create Array in R