For loop en R: funcionamiento de bucles for

Al igual que casi todo el resto de lenguajes de programación, el lenguaje funcional y orientado a objetos R también es compatible con la estructura de control for. En R, con un for loop puedes iterar mediante una enumeración o implementar bucles de recuento.

Opciones de uso

Tanto si estás aprendiendo a programar como si tienes experiencia programando, seguro que ya te habrás topado con el ciclo for.

Así como en otros lenguajes, en la programación en R, el bucle for siempre se utiliza cuando se quiere ejecutar un bloque de código de manera repetida y se sabe de antemano la cantidad de pasadas del bucle. Por tanto, el bucle for es la mejor opción si por ejemplo se quiere implementar en el programa un contador que cuente hasta cinco.

Muchos lenguajes de programación, como Java, soportan además el concepto del foreach loop, con el que puedes iterar directamente desde un array o una lista y acceder a cada elemento de la estructura de datos. Esto es especialmente práctico si quieres ejecutar una operación para todos los elementos de una estructura de datos. R también es compatible con esta variante del bucle for. El bucle foreach en R también se introduce con la palabra clave “for”.

Sin embargo, cada bucle for puede sustituirse por el bucle while. La ventaja principal del bucle for es, además de su elevada legibilidad, la compacidad del código introducido.

Consejo

Gracias al alojamiento web con tráfico ilimitado de IONOS puedes alojar cómodamente todos tus proyectos online. Esta memoria web segura garantiza que tus programas estén lo más protegidos posible frente a la pérdida de datos gracias a la realización de copias de seguridad periódicas.

La sintaxis del for loop en R

Para insertar un ciclo for en R, debes tener en cuenta las características sintácticas de esta construcción de ciclos.

Un for loop consta básicamente de dos elementos esenciales: el encabezado y el cuerpo del ciclo. Como los bucles for son ciclos dirigidos por el encabezado, eso es lo que se ejecuta primero. Solo se ejecutará el cuerpo cuando se den las condiciones especificadas allí.

La palabra clave “for” da pie al encabezado del bucle. Luego, se introduce entre paréntesis el nombre de la variable de recuento, seguida de la palabra clave “in”. A continuación, debes indicar a través de qué quieres iterar. Puede ser, por ejemplo, un rango de números, pero también una lista o un vector. El cuerpo del ciclo que sigue a continuación se señaliza con corchetes.

Tipos de for loops en R

Bucles de recuento

Los bucles for tanto en Python como en R trabajan sobre todo con rangos numéricos. Si quieres que salgan en la pantalla números entre 1 y 10, el bucle for sería así:

for (x in 1:10) {
	print(x)
}
R

En el código de arriba se ve que se introduce una variable x en el encabezado del ciclo for. Con la palabra clave “in” se especifica exactamente que esta variable tenga un valor que se mueva entre el 1 y el 10. R se encarga de ir sumando uno a uno en números enteros. Como verás, a diferencia de la función de range de Python, se incluye el número que se nombra en el segundo paso.

Con este bucle de recuento también puedes contar hacia atrás. Para ello, simplemente intercambia las dos fronteras del encabezado y nombra primero el número más alto. R irá restando números automáticamente:

for (x in 10:1) {
	print(x)
}
R

Tu programa mostrará en la pantalla todos los números enteros empezando por el 10 y bajando hasta el 1.

Ciclos foreach

Aunque R no dispone de una palabra clave para ellos, aun así, te permite hacer uso de la lógica de los bucles foreach. En R se introducen también con la palabra “for”:

cars <- list("limousine", "cabrio", "suv")
for (x in cars) {
	print (x)
}
R

Como ves, en este código hay una lista llamada cars en la que están guardados distintos tipos de vehículos. El for loop en R que le sigue itera cada elemento de la lista y los saca en la pantalla. El nombre del elemento a través del que se quiere iterar (en este caso cars) se indica después de la palabra clave “in”.

Interrumpir un ciclo for en R con la palabra clave “break”

Imagina que quieres buscar un elemento concreto en una lista. En este caso, puede serte de ayuda interrumpir tu bucle for una vez que lo hayas encontrado. Así te ahorrarías muchas pasadas del ciclo y tu programa necesitará una potencia de cálculo considerablemente menor. Para esto sirve la palabra clave “break” en R:

cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
print (x)
	if (x == "suv") {
		break
}
}
R

En el código de arriba, se ha ampliado la lista cars. Imagina que quieres interrumpir la salida de tipos de vehículos en cuanto hayas encontrado el tipo “SUV”. Tendrías que introducir en la condición If Else en R la ya mencionada palabra clave “break”.

Saltarse pasadas del for loop en R con la palabra clave “next”

En algunos casos, puede venir bien saltarse algunas pasadas del ciclo en vez de interrumpir totalmente la ejecución del bucle for. El lenguaje de programación R también tiene una palabra clave adecuada para esto: “next”.

cars <- list("limousine", "cabrio", "suv", "supersport", "oldtimer")
for (x in cars) {
	if (x == "suv") {
		next
}
print(x)
}
R

El ejemplo de código anterior ahora se ha modificado para que se dé salida a todos los tipos de vehículos de la lista menos el “SUV”. Aquí también se introduce una condición “if” que comprueba si el elemento actual de la lista es “SUV”. Si es así, se saltan el resto de órdenes de la pasada del cuerpo del bucle y continúa la ejecución del for loop en R.