Display ein Zähler für Schleifen auf einer Zeile anzuzeigen
Ich bin mit Schleifen in R der folgenden Sorte:
for(i in 1:N){...}
Ich hätte gerne einen Zähler, der zeigt den aktuellen Wert i
im Fortschritt der Schleife. Ich will dies, um zu verfolgen, wie weit bin ich in Richtung der Erreichung am Ende der Schleife. Ein Weg dies zu tun ist, legen Sie einfach print(i)
in der Schleife code. E. g.,
for(i in 1:N){
...substantive code that does not print anything...
print(i)
}
Dieser macht den job, so dass Sie die i
's ausgeführt wird. Das problem ist, dass es druckt jeden Wert in eine neue Zeile, a la,
[1] 1
[1] 2
[1] 3
Diese frisst viel Konsole den Raum; wenn N
groß ist wird er Essen, bis alle die Konsole Raum. Ich hätte gerne einen Zähler, der nicht fressen so viel-Konsole Platz. (Manchmal ist es schön zu können, um einen Bildlauf der Konsole zu überprüfen, um sicherzustellen, dass Sie ausführen, was Sie denken, dass Sie ausgeführt werden.) Also, ich hätte gerne einen Zähler, der anzeigt,
[1] 1 2 3 ...
weiterhin auf eine neue Zeile, sobald die Konsole Breite erreicht wurde. Ich habe gesehen, diese von Zeit zu Zeit. Alle tricks für die machen, dass passieren?
InformationsquelleAutor Cyrus S | 2011-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, verwenden Sie die Funktion flush.Konsole()
gibt
Hier eine kleine Anpassung am code, mit dem das drucken nur eine einzige Zahl und die Schrittweite mit jedem Lauf. Es verwendet ein carriage return (\r) Sequenz zu vermeiden, eine lange Liste von zahlen in der Konsole.
Wahr ist, dass es nicht ganz wrap angemessen. Es funktioniert für meine Bedürfnisse zur Zeit, also danke @Mark, aber wenn es eine bessere option seitenumlauf, dass wäre toll.
InformationsquelleAutor Mark Heckmann
Blick auf die Funktionen txtProgressBar, winProgressBar (nur windows), und tkProgressBar (tcltk Paket) als andere Arten, Sie zu zeigen, Ihre Fortschritte in einer Schleife.
Auf einigen Konsolen können Sie auch "\r" oder "\b" in eine Katze, die Anweisung zu gehen zurück an den Anfang der Zeile und überschreiben die vorherigen iteration Nummer.
InformationsquelleAutor Greg Snow
Wenn du interessiert bist, hier sind einige Fortschrittsbalken Beispiele:
http://ryouready.wordpress.com/2009/03/16/r-monitor-function-progress-with-a-progress-bar/
http://ryouready.wordpress.com/2010/01/11/progress-bars-in-r-part-ii-a-wrapper-for-apply-functions/
InformationsquelleAutor bill_080
Versuchen, diese für einfache loops:
Oder dies für geschachtelte Schleifen:
InformationsquelleAutor Allan Veloso
Nicht eine sehr schöne Lösung, aber Sie können versuchen, etwas ähnliches in Ihrem loop :
Aber stellen Sie manuell die 30 Wert passen Sie die Breite der Konsole.
InformationsquelleAutor juba