我想监控一些嵌入在knitr文件中的相当长的并行计算。
这些计算依赖于我编写的一个包,相关函数使用multicore包中的mclapply进行并行化。该函数使用utils包中略微修改后的txtProgressBar实现输出进度条以监视计算的进度。进度条打印到终端,并通过fifo连接在每个mclapply迭代完成时更新。
当直接从文件中调用该函数时,这很好运行,但我找不到在knitr内使其工作的方法。我尝试了相关的块选项,可以将消息和警告重定向到终端,但无法显示进度条。有人可以帮忙吗?
抱歉没有提供最小工作示例,但我不知道如何在这种情况下创建一个。
txtProgressBar(..., file = 'progress_temp.txt')
。或者将其写入 stderr。我会更新我的答案。 - Yihui XieStdErr()
的技巧,简单易实现且效果惊人。顺便说一下,感谢knitr,这是我每天都在使用的绝妙工具。 - Pepin_the_sleepyprint(1+1)
确实可以捕获到输出内容,但对于简单的1+1
则不行。在这种情况下,在HTML或PDF中没有任何输出。当然,如果在Python控制台(2.7)中运行1+1
,就会有输出。这是knitr的正常行为还是我做错了什么? - Fran