Iterar sobre elementos de un vector
Parte de la sección Fundamentos del Journey de R de Coddy — lección 63 de 78.
Si bien las operaciones vectorizadas de R son potentes, a veces es necesario procesar cada elemento individualmente con una lógica personalizada. Un bucle for permite iterar a través de los elementos de un vector uno a la vez.
La forma más sencilla de recorrer un vector es iterar directamente sobre sus elementos:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Resultado:
[1] "apple"
[1] "banana"
[1] "cherry"En cada iteración, la variable de bucle fruit toma el valor del siguiente elemento en el vector. Este enfoque es limpio y legible cuando solo necesitas los valores en sí mismos.
Puedes combinar la iteración con la lógica condicional para procesar elementos de forma selectiva:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Salida:
[1] 8
[1] 10Este patrón es útil cuando necesitas aplicar diferentes operaciones basadas en el valor de cada elemento, algo que las operaciones vectorizadas por sí solas no siempre pueden manejar.
Desafío
FácilRecibirás dos líneas de entrada:
- Una lista de números separados por comas (por ejemplo,
12,5,18,3,25,8,14) - Un valor de umbral (por ejemplo,
10)
Usando un bucle for para iterar sobre los elementos del vector:
- Crea un vector a partir de los números separados por comas
- Recorre cada elemento del vector
- Para cada elemento que sea mayor o igual que el umbral, imprime ese elemento usando
print()
Por ejemplo, si las entradas son:
4,15,8,22,6,19,11
10La salida debería ser:
[1] 15
[1] 22
[1] 19
[1] 11Explicación: El bucle comprueba cada elemento frente al umbral (10). Los elementos 15, 22, 19 y 11 son todos mayores o iguales a 10, por lo que se imprimen. Los elementos 4, 8 y 6 se omiten.
Hoja de referencia
Un bucle for le permite iterar a través de los elementos de un vector uno a la vez y aplicar lógica personalizada a cada elemento.
Sintaxis básica para recorrer un vector:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}En cada iteración, la variable del bucle toma el valor del siguiente elemento en el vector.
Combinación de bucles con lógica condicional para procesar elementos de forma selectiva:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Este patrón es útil cuando necesita aplicar diferentes operaciones basadas en el valor de cada elemento.
Pruébalo tú mismo
# Leer entrada
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# Convertir la cadena separada por comas en un vector numérico
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))
# TODO: Escribe tu código a continuación
# Usa un bucle for para iterar a través del vector numbers
# Para cada elemento >= threshold, imprímelo 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 defecto12Iterar sobre secuencias
Iterar sobre elementos de un vectorUso de seq_along()Iterar sobre caracteres (strsplit)Funciones de manipulación de cadenas