【发布时间】:2023-06-25 02:21:01
【问题描述】:
我正在尝试在 Jupyter 中使用内置的 R 进度条 (txtProgressBar) 和 %%R 魔法。虽然它在 R 控制台或 RStudio 中执行时确实会产生漂亮的动画,但它不会在带有 rpy2 扩展名的 Jupyter(笔记本或实验室)中产生所需的输出,而是在完成后立即打印所有步骤(这使得进度吧没用)。两个问题:
- 我怎样才能让它工作?
- 如果还不可能,我该如何在 rpy2 端实现此功能(我已经知道如何在 Jupyter/IPython 端创建交互式输出/小部件)?
这是来自rfunction.com的进度条的简单sn-p:
%%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 进行安装,并且需要使用%load_ext rpy2.ipython 在Jupyter 中加载魔法。
编辑:我现在使用的解决方法是通过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)
}
""")
但这并不理想 - 我更愿意保留 rpy2 的 Rmagic 的所有优点。
【问题讨论】:
标签: python jupyter rpy2 jupyter-lab ipython-magic