我想監視嵌入在knitr文件中的一些非常冗長的並行計算。Knitr:將塊代碼輸出重定向到終端
計算依賴於我編寫的程序包,相關函數使用來自多核的包中的mclapply進行並行化。此函數輸出進度條以監視計算的進度,使用稍微修改的txtProgressBar的實用程序包。進度條被打印到終端並且每次迭代mclapply完成時通過fifo連接進行更新。
當從文件中獲取或直接調用函數時,此工作正常,但是我發現無法使其在knitr中工作。我已經嘗試了相關的塊選項,我可以將消息和警告重定向到終端,但不是進度條。誰能幫忙?
對不起,沒有提供一個最小的工作示例,但我沒有看到我怎麼能在這個設置。
感謝您的回覆@Yihui,我希望你能放下!我會沿着第一條建議嘗試一些,第二條意味着放棄緩存計算的能力。除了多核問題之外,您是否知道有任何方法可以監視塊內進行的計算狀態? –
也許您可以將進度寫入其他位置,例如在文件中:'txtProgressBar(...,file ='progress_temp.txt')'。或者寫給stderr。我會更新我的答案。 –
感謝'StdErr()'破解,簡單實現並創造奇蹟。雖然我在這上面,但謝謝你,這是我每天使用的一個很棒的工具。 –