Menu
Coddy logo textTech

Generación de secuencias (seq, :)

Parte de la sección Fundamentos del Journey de R de Coddy — lección 43 de 78.

Has estado usando 1:5 para crear secuencias en tus bucles. Este operador de dos puntos es rápido y sencillo, pero R también proporciona la función seq() para tener más control sobre tus secuencias.

El operador de dos puntos crea una secuencia de enteros consecutivos:

print(1:5)
print(10:6)

Salida:

[1] 1 2 3 4 5
[1] 10 9 8 7 6

Observa que la secuencia puede ir en cualquier dirección. Cuando el primer número es mayor, la cuenta es regresiva.

La función seq() te ofrece más flexibilidad. Puedes especificar un tamaño de paso usando el argumento by:

print(seq(2, 10, by = 2))

Salida:

[1] 2 4 6 8 10

Esto crea números pares del 2 al 10.

También puedes especificar cuántos números quieres usando length.out:

print(seq(1, 10, length.out = 4))

Salida:

[1] 1 4 7 10

R calcula automáticamente el espaciado para darte exactamente 4 números espaciados uniformemente. Ambos enfoques funcionan a la perfección en bucles, permitiéndote iterar a través de secuencias personalizadas con facilidad.

challenge icon

Desafío

Fácil

Lee tres números de la entrada: start, end y step.

Usa la función seq() para generar una secuencia desde start hasta end con el tamaño de step dado. Luego, usa un bucle for para iterar a través de esta secuencia e imprimir el cuadrado de cada número.

Cada valor al cuadrado debe imprimirse en su propia línea usando print().

Por ejemplo, si las entradas son 2, 10 y 2, la salida debería ser:

[1] 4
[1] 16
[1] 36
[1] 64
[1] 100

Esto se debe a que se genera la secuencia 2, 4, 6, 8, 10, y cada número es elevado al cuadrado.

Hoja de referencia

El operador de dos puntos : crea secuencias de enteros consecutivos:

1:5  # crea 1 2 3 4 5
10:6  # crea 10 9 8 7 6 (cuenta regresiva)

La función seq() proporciona más control sobre las secuencias:

# Especificar el tamaño del paso con 'by'
seq(2, 10, by = 2)  # crea 2 4 6 8 10

# Especificar el número de valores con 'length.out'
seq(1, 10, length.out = 4)  # crea 1 4 7 10

Tanto el operador de dos puntos como seq() funcionan en bucles for:

for (i in seq(2, 10, by = 2)) {
  print(i)
}

Pruébalo tú mismo

# Leer entrada
con <- file("stdin", "r")
start <- as.numeric(suppressWarnings(readLines(con, n = 1)))
end <- as.numeric(suppressWarnings(readLines(con, n = 1)))
step <- as.numeric(suppressWarnings(readLines(con, n = 1)))

# TODO: Escribe tu código a continuación
# 1. Usa seq() para generar una secuencia desde start hasta end con el step dado
# 2. Usa un bucle for para iterar a través de la secuencia
# 3. Imprime el cuadrado de cada número usando print()
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos