En este artículo, discutiremos cómo crear una array 2D de secuencias de números enteros pares en el lenguaje de programación R.
Método 1: Usar el método seq()
El método array() se puede usar para crear una array con >=1 dimensiones. Este método devuelve una array con las extensiones especificadas en el atributo dim. Para una array bidimensional, el atributo dim contiene un vector de dos elementos, primero indicando el número de filas y luego el número de columnas respectivamente.
Sintaxis: array (datos, dim)
Parámetro:
- datos: los datos para completar la array
- dim – Las dimensiones de la array en forma de vector
Los datos de este método se pueden crear usando el método seq(), que se usa para generar secuencias regulares, dentro del rango definido de números.
Sintaxis: seq(from = 1, to = 1, length.out , by = ((to – from)/(length.out – 1))
Parámetro:
- from, to – (Predeterminado: 1) Los valores inicial y final (máximo) de la secuencia.
- by – Indicador del número por el que se incrementa la secuencia.
- length.out: un indicador entero no negativo de la longitud de la secuencia.
En este enfoque, el atributo from debe ser par para generar una secuencia de enteros pares. El argumento length.out será igual al producto de las dimensiones de la array 2-D. Y por atributo tiene un valor de 2, para incrementar el número en 2 cada vez.
Ejemplo:
R
# creating integers mat <- seq(from = 2, length.out = 12, by = 2) # creating dimensions dim <- c(4, 3) arr <- array( mat , dim ) print("Array of even integers sequence:") print(arr)
Producción
[1] "Array of even integers sequence:" [,1] [,2] [,3] [1,] 2 10 18 [2,] 4 12 20 [3,] 6 14 22 [4,] 8 16 24
Método 2: usando manualmente el bucle for
La posición inicial para comenzar la secuencia de datos se especifica junto con las dimensiones deseadas de la array 2-D. Dado que el número total de elementos requeridos es igual al producto de las dimensiones, aquí necesitamos números pares que ocurren en posiciones alternas. Entonces, el número total de elementos será equivalente al doble del producto de las dimensiones. Ahora, la posición final está dada por:
posición_final = posición_inicial + número de elementos
Se inicia un ciclo for para iterar desde la posición inicial hasta la posición final-1 para generar una secuencia de elementos dentro de este rango, y cada vez que se encuentra un número par, el número se agrega a una lista vacía. Este vector forma la secuencia de enteros pares y se puede alimentar al método matrix() de base R, que crea una array 2D.
Sintaxis:
array (datos, nrow =)
Se puede suponer que la complejidad del tiempo es casi constante hasta tamaños dimensionales muy grandes.
Ejemplo:
R
# specifying where to start the # even integers from start_pos <- 20 # specifying dimensions of matrix nrow <- 3 ncol <- 2 # calculating starting position end_pos = (nrow * ncol * 2) + start_pos # creating empty vector vec <- c() for (i in start_pos : end_pos-1){ # check if element is divisible by 2 if(!(i%%2)){ # append element to vector vec <- c(vec, i ) } } # creating matrix mat <- matrix(vec , nrow = 3) print ("Sequence of even integers in 2-D array") print (mat)
Producción
[1] "Sequence of even integers in 2-D array" [,1] [,2] [1,] 20 26 [2,] 22 28 [3,] 24 30