Drucken repetetively in der gleichen Zeile in R
Ich Frage mich, was ist der beste Weg, in R zu halten auf drucken auf der gleichen Zeile in einer Schleife, um zu vermeiden, überschwemmen Ihre Konsole? Lassen Sie uns sagen, zu drucken, ein Wert, der angibt, Ihre Fortschritte, wie in
for (i in 1:10) {print(i)}
Edit:
Ich habe versucht, das einfügen von Zeilenschaltungen vor jeder Wert als in
for (i in 1:10000) {cat("\r",i)}
aber auch nicht ganz so funktioniert, wie es nur aktualisieren Sie den Wert auf dem Bildschirm nach der Schleife, einfach wieder 10000 in diesem Fall.... Irgendwelche Gedanken?
NB dies wird nicht zu einem Fortschrittsbalken, wie ich weiß, gibt es verschiedene Funktionen, aber nur um drucken zu können, einige Infos während der progression von einigen Schleife, ohne überschwemmen die Konsole
- Für eine einfache Statusanzeige, überprüfen ?txtProgressBar
- Vielleicht aufhören zu drucken, jedes mal? Der übliche Weg ist
if(i%%100 ==0) print('working...')
- Ja danke Carl - ich benutze eine Menge, aber selbst dann könnte es nett sein, nicht Sumpf die Konsole mit allen Ausgabe...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie die Antwort, es ist nur looping zu schnell für Sie zu sehen. Versuchen:
EDIT: Tatsächlich, dies ist sehr nah an @Simon O 'Hanlon' s Antwort, aber angesichts der Verwirrung in den Kommentaren und der Tatsache, dass es ist nicht genau das gleiche, ich lasse ihn hier.
"\r"
!! Ich sagte: einige helle Funken würde es herausfinden!Versuchen Sie es mit
cat()
...cat()
führt viel weniger Umsatz alsprint()
(von den Pferden Mund).Wiederholt drucken an der gleichen Stelle, müssen Sie deaktivieren Sie die Konsole. Ich bin mir nicht bewusst einen anderen Weg, dies zu tun, aber Dank diese tolle Antwort das funktioniert (in RStudio unter Windows mindestens):
Gut... sind Sie besorgt über hängt, oder einfach nur darüber benachrichtigt werden, wenn der Auftrag abgeschlossen ist?
Im ersten Fall würd ich mich w/meine
j%%N
Vorschlag, woN
ist groß genug, dass Sie nicht zum Sumpf der Konsole.Im zweiten Fall, fügen Sie eine Letzte Zeile zu Ihrem Skript oder eine Funktion, die, z.B., ruft "Piep" .