Con eso de que R es un lenguaje vectorizado me parece que los bucles se usan poco en general (menos que en otros lenguajes, al menos).
Tanto que muchas veces, como mucho se estudian los bucles for (yo no suelo explicar bucles en los cursos de introducción).
Pero como en la mayoría de lenguajes hay otro par de tipos de bucles disponibles:
bucles while
while (condicion) {
sentencias a repetir
}dentro del bloque de código debe haber algo que haga que la condición cambie, porque si no, estaremos ante un bucle infinito.
Ej:
while (area1 > area2 | id > 2) {
id <- id -1
...
area1 <- nuevo_area
...
}bucles repeat
repeat {
bloque de código
}El repeat no tiene como parte de su estructura una condición de salida del bucle, por lo que es importante no olvidarse de ponerla dentro del bloque de código
repeat {
bloque de código
if (condición ) break
}¿Y cuándo usamos cada uno? Pues según cuál de estas frases nos suene mejor dentro de la lógica que queremos implementar (regla científica donde las haya):
- “Mientras se cumpla esto, ejecuta este bloque de código”.
- “Repite este bloque de código hasta que se cumpla esto”.
En el caso del repeat, nos aseguramos que siempre se va a ejecutar el código como mínimo una vez antes de evaluar la condición.