Блог переехал. Актуальная версия поста находится по адресу: http://aakinshin.net/ru/blog/r/progress-bar/.
Давайте поговорим о долгих расчётах, ведь они не так редко встречаются в мире вычислений. Когда вы запускаете скрипт, который будет заведомо долго работать, то приятно смотреть на состояние прогресса. Эта информация поможет прикинуть время до конца вычислений («осталось ещё 30%, я успею выпить чашку кофе») или просигнализировать о бесконечном цикле («1438% выполнено, что-то пошло не так...»). Давайте научим наш скрипт сообщать пользователю о проценте выполненных работ. Пусть у нас есть очень полезная функция, которая делает что-то очень важное некоторое время: И эта функция запускается несколько раз:
for (i in 1:10) { foo() }
for (i in 1:10) { foo() print(i) }
for (i in 1:10) { foo() print(i) flush.console() }
pb <- txtProgressBar(min = 0, max = 10, style = 3) # Создаём progress bar for(i in 1:10){ foo() setTxtProgressBar(pb, i) # Обновляем progress bar } close(pb) # Закрываем progress bar
pb <- tkProgressBar(title = "progress bar", min = 0, max = 10, width = 300) # Создаём progress bar for(i in 1:10){ foo() setTkProgressBar(pb, i, label=paste( round(i/10 * 100, 0), "% done")) # Обновляем progress bar } close(pb) # Закрываем progress bar
Ну вот и всё, теперь вы умеете создавать разнообразные progress bar-ы и делать процесс выполнения R-скрипта более информативным.
Навеяно постом: R: Monitoring the function progress with a progress bar.
Комментариев нет:
Отправить комментарий