Jak wypisać tekst w konsoli R bez tworzenia nowych linii?
Chciałbym uzyskać wskaźnik postępu podczas moich długich algorytmów biegowych. Mogę łatwo "bubble up" wartość postępu z mojego algorytmu (na przykład poprzez wywołanie podanej funkcji zwrotnej specjalnie w tym celu), ale trudność jest w rzeczywistym procesie wyjściowym tekstu. Każde wywołanie print
tworzy nową linię, a każde poprzedzone [1]
.
Czy istnieje sposób na drukowanie w różnych momentach czasu, bez wprowadzania przerw w linii?
Być konkretniej, chcę osiągnąć "animację", która wyglądałaby następująco, gdyby była obserwowana w dwóch różnych momentach.
0%...
...
0%...2%...4%...
4 answers
Użyj cat()
zamiast print()
:
cat("0%")
cat("..10%")
Wyjścia:
0%..10%
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 09:15:49
Andrie wyprzedziła mnie o 28 sekund.
> for (i in 1:10) {
+ cat(paste("..", i, ".."))
+ }
.. 1 .... 2 .... 3 .... 4 .... 5 .... 6 .... 7 .... 8 .... 9 .... 10 ..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 09:16:40
Maybe you can yse plyr
l_ply(1:4,function(x) x+1,.progress= progress_text(char = '+'),.print=TRUE)
| | 0%[1] 2
|++++++ | 25%[1] 3
|+++++++++++++++ | 50%[1] 4
|++++++++++++++++++++++ | 75%[1] 5
|++++++++++++++++++++++++++++++++ | 100%[1]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 09:18:19
Jeśli naprawdę potrzebujesz paska postępu jako takiego, użyj txtProgressBar
dla wyjścia konsoli. Lub winProgressBar
pod Windows dla paska postępu w oknie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 09:31:17