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 6Observa 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 10Esto 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 10R 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.
Desafío
FácilLee 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] 100Esto 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 10Tanto 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()Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos (AND, OR)Operadores lógicos Parte 2 (NOT)Resumen - Lógica simpleLógica vectorizada Parte 1Lógica vectorizada Parte 27Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario2Variables y tipos de datos
Tipo de dato numéricoTipo de dato enteroTipo de dato de caracteresTipo de dato lógicoComprobación de tipos de datosConvenciones de nomenclaturaValores faltantes: NAResumen - Creación de variables8Bucles
Bucle ForBucle WhileBreakNext (Continue)Repaso - FactorialGeneración de secuencias (seq, :)Bucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosDivisión entera y móduloOperadores de asignaciónRepaso - Matemáticas simplesOperadores de comparación6E/S básica
Imprimir salidaCat para salidaSalida con variablesLectura de entrada con readline()Conceptos básicos de conversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso9Funciones
Declarar una funciónArgumentos de una funciónValores de retornoRepaso - Función SigmaRepaso - Función de validaciónValores de parámetros por defecto