Al igual que casi todo el resto de lenguajes de pro­gra­ma­ción, el lenguaje funcional y orientado a objetos R también es co­m­pa­ti­ble con la es­tru­c­tu­ra de control for. En R, con un for loop puedes iterar mediante una enu­me­ra­ción o im­ple­me­n­tar bucles de recuento.

Opciones de uso

Tanto si estás apre­n­die­n­do a programar como si tienes ex­pe­rie­n­cia pro­gra­ma­n­do, seguro que ya te habrás topado con el ciclo for.

Así como en otros lenguajes, en la pro­gra­ma­ció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 im­ple­me­n­tar en el programa un contador que cuente hasta cinco.

Muchos lenguajes de pro­gra­ma­ción, como Java, soportan además el concepto del foreach loop, con el que puedes iterar di­re­c­ta­me­n­te desde un array o una lista y acceder a cada elemento de la es­tru­c­tu­ra de datos. Esto es es­pe­cia­l­me­n­te práctico si quieres ejecutar una operación para todos los elementos de una es­tru­c­tu­ra de datos. R también es co­m­pa­ti­ble 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 su­s­ti­tui­r­se por el bucle while. La ventaja principal del bucle for es, además de su elevada le­gi­bi­li­dad, la co­m­pa­ci­dad del código in­tro­du­ci­do.

Consejo

Gracias al alo­ja­mie­n­to web con tráfico ilimitado de IONOS puedes alojar có­mo­da­me­n­te todos tus proyectos online. Esta memoria web segura garantiza que tus programas estén lo más pro­te­gi­dos posible frente a la pérdida de datos gracias a la rea­li­za­ción de copias de seguridad pe­rió­di­cas.

La sintaxis del for loop en R

Para insertar un ciclo for en R, debes tener en cuenta las ca­ra­c­te­rí­s­ti­cas si­n­tá­c­ti­cas de esta co­n­s­tru­c­ción de ciclos.

Un for loop consta bá­si­ca­me­n­te de dos elementos ese­n­cia­les: el en­ca­be­za­do y el cuerpo del ciclo. Como los bucles for son ciclos dirigidos por el en­ca­be­za­do, eso es lo que se ejecuta primero. Solo se ejecutará el cuerpo cuando se den las co­n­di­cio­nes es­pe­ci­fi­ca­das allí.

La palabra clave “for” da pie al en­ca­be­za­do del bucle. Luego, se introduce entre pa­ré­n­te­sis el nombre de la variable de recuento, seguida de la palabra clave “in”. A co­n­ti­nua­ció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 co­n­ti­nua­ció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 en­ca­be­za­do del ciclo for. Con la palabra clave “in” se es­pe­ci­fi­ca exac­ta­me­n­te 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 di­fe­re­n­cia 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, si­m­ple­me­n­te in­te­r­ca­m­bia las dos fronteras del en­ca­be­za­do y nombra primero el número más alto. R irá restando números au­to­má­ti­ca­me­n­te:

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 in­tro­du­cen 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”.

In­te­rru­m­pir 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 in­te­rru­m­pir tu bucle for una vez que lo hayas en­co­n­tra­do. Así te aho­rra­rías muchas pasadas del ciclo y tu programa ne­ce­si­ta­rá una potencia de cálculo co­n­si­de­ra­ble­me­n­te 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 in­te­rru­m­pir la salida de tipos de vehículos en cuanto hayas en­co­n­tra­do el tipo “SUV”. Tendrías que in­tro­du­cir en la condición If Else en R la ya me­n­cio­na­da 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 in­te­rru­m­pir to­ta­l­me­n­te la ejecución del bucle for. El lenguaje de pro­gra­ma­ció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 mo­di­fi­ca­do 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.

Ir al menú principal