Я пытаюсь использовать встроенный индикатор прогресса R (txtProgressBar
) с магией %%R
в Jupyter.Хотя он и производит приятную анимацию при выполнении в консоли R или RStudio, он не выдает желаемый результат в Jupyter (записной книжке или лаборатории) с расширением rpy2, печатая все шаги сразу после окончания (что приводит к прогрессу).бар бесполезный).Два вопроса:
- Как я могу заставить его работать?
- Если это пока невозможно, как мне подойти к реализации этой функции на стороне rpy2 (я уже знаю, как сделатьинтерактивный вывод / виджеты на стороне Jupyter / IPython)?
Вот простой фрагмент индикатора выполнения с rfunction.com :
%%R
SEQ <- seq(1,100)
pb <- txtProgressBar(1, 100, style=3)
TIME <- Sys.time()
for(i in SEQ){
Sys.sleep(0.02)
setTxtProgressBar(pb, i)
}
Для новичков в rpy2
: он должен быть установлен с pip install rpy2
, а магия должна быть загружена в Jupyter с %load_ext rpy2.ipython
.
Редактировать: Обходной путь, который я сейчас использую, заключается в том, чтобы вручнуювызовите код через robjects.r
:
from rpy2.robjects import r
r("""
SEQ <- seq(1,100)
pb <- txtProgressBar(1, 100, style=3)
TIME <- Sys.time()
for(i in SEQ){
Sys.sleep(0.02)
setTxtProgressBar(pb, i)
}
""")
, однако это не идеально - я бы предпочел сохранить все преимущества Rmagic Rpy2.