Sehr einfaches Beispiel-Code (nur für die Demonstration, keine Verwendung überhaupt):Ausbruch aus verschachtelten Schleifen in R
repeat {
while (1 > 0) {
for (i in seq(1, 100)) {
break # usually tied to a condition
}
break
}
break
}
print("finished")
Ich möchte ohne separat in jeder Schleife break
unter Verwendung von mehreren Schleifen auszubrechen. Nach a similar question regarding python, scheint meine Schleifen in eine Funktion Einwickeln eine mögliche Lösung zu sein, das heißt mit return()
in der Funktion aus jeder Schleife brechen:
nestedLoop <- function() {
repeat {
while (1 > 0) {
for (i in seq(1, 100)) {
return()
}
}
}
}
nestedLoop()
print("finished")
Gibt es noch andere Methoden in R zur Verfügung? Vielleicht etwas wie das Beschriften von Schleifen und das Spezifizieren welcher Schleife zu brechen (wie in Java)?
ich jetzt nicht andere Methoden und verwenden würde 'return' wie diese. Aber natürlich habe ich seit Monaten keine verschachtelte R-Schleife geschrieben und habe seit Jahren keine R-While- oder Repeat-Schleife mehr benutzt. – Roland
Das Problem, das ich habe, wenn ich meine Schleifen in eine Funktion einpacke, ist, dass ich möglicherweise große Listen von Variablen innerhalb der Schleifen zurückgeben muss, um sie in die globale Umgebung zu bringen, wenn sie an anderer Stelle in meinem Code benötigt werden. – Robomatix
Nein, Ihr Problem verwendet so viele Schleifen. Effizienter R-Code verwendet selten verschachtelte Schleifen. – Roland