3

我想知道是否有一种方法可以异步处理RMarkdown 文档中的knitr代码块。

这就是我的想法:想象一个包含复杂数据分析的文档被分解成几个代码块,其中几个代码块包含复杂的代码,因此运行速度很慢。这些代码块彼此之间没有任何依赖关系,它们的输出要么是绘图、表格,要么是其他一些数字结果,但不是任何其他代码块使用的任何数据对象。

如果我可以并行处理这些代码块,那就太好了。通常,knitr按顺序处理每个代码块,因此,可能有几个代码块在一个处理缓慢的代码块后面的队列中。像futurepromise这样的R 包支持异步编程,我想知道是否可以利用它以相同的方式并行处理knitr代码块。我知道我可以将慢速代码块放在单独的 Rmd 文件中,然后在调用中的代码块调用knitr::knit_childfuture::future_map,但是将所有内容放在同一个文件中会更好。我也知道可以使用child代码块中的选项。此外,我知道我可以通过使用ref.label选项按名称调用代码块来重用代码块。所以我想知道是否有任何方法可以劫持这些功能中的任何一个(可能使用future),以便在执行传递到后续代码块时延迟呈现代码块输出。或类似的东西。只是探索超越knitr中代码块的顺序计算并使用多核或多会话处理的可能性空间。

4

0 回答 0