Ausbrechen aus verschachtelten Schleifen in R

Sehr einfaches Beispiel-code (nur für demonstration, keine Nutzung):

repeat {
  while (1 > 0) {
    for (i in seq(1, 100)) {
      break # usually tied to a condition
    }
    break
  }
  break
}
print("finished")

Ich will ausbrechen aus mehreren Schleifen ohne Verwendung break in jeder Schleife getrennt.
Nach eine ähnliche Frage bezüglich python, packe meine Schleifen in eine Funktion zu sein scheint, eine mögliche Lösung, d.h. mit return() zu brechen jede Schleife in der Funktion:

nestedLoop <- function() {
  repeat {
    while (1 > 0) {
      for (i in seq(1, 100)) {
        return()
      }
    }
  }
}

nestedLoop()
print("finished")

Gibt es andere Methoden, die Sie R? Vielleicht so etwas wie die Kennzeichnung Schleifen und dann angeben, welche Schleife zu brechen (wie in Java) ?

  • Ich jetzt nicht, andere Methoden und würde return wie diese. Aber natürlich, ich habe nicht geschrieben, eine geschachtelte R-Schleife in Monaten und habe nicht ein R while oder repeat Schleife in Jahren.
  • Das problem, dass ich mit der Verpackung meine Schleifen in einer Funktion ist, dass ich möglicherweise haben, um wieder große Listen von Variablen innerhalb der Schleifen, um Sie an die Umwelt, wenn Sie anderswo benötigt werden in meinem code.
  • Nein, dein problem ist mit so vielen loops. Effiziente R-code nur selten verwendet geschachtelte Schleifen.
  • Mithilfe von geschachtelten Schleifen ist vielleicht nicht die eleganteste Art und Weise, Probleme zu lösen, aber manchmal notwendig, d.h. die Adressierung jeder Wert der matrix getrennt. Auch einige etablierte algorithmen verwenden von geschachtelten Schleifen. Und manchmal ich will einfach nur, um meine Arbeit zu erledigen, ohne Verbesserung meines codes die Leistung bis an die Grenze.
  • Wir sprechen hier nicht über die Einnahme die Leistung bis an die Grenze, sondern um Größenordnungen, die in Zeiten.
  • Ich denke, Sie möchte etwas zurückgeben.

InformationsquelleAutor Robomatix | 2016-06-01
Schreibe einen Kommentar