我是knitr的新用户。我知道knitr可以“解开”(来自文学编程社区)或将源代码块提取到R脚本文件中。作为org-mode用户,我习惯于能够为每个代码块指定特定的文件,可能是多个块相同的文件。在org-mode中“解开”或提取源代码时,不是产生一个输出代码文件,而是产生几个代码文件(这有助于大型项目的模块化)。
我想知道在knitr中是否有类似的功能?我能否在knitr中逐块指定输出文件?
你的问题至少有两个不同的阅读方式,每个方式需要稍微不同的工作流程。
如果每个块都将被写入单独的输出文档,则为了帮助模块化,您应该将报告部分拆分成多个文档。由于knitr
支持子文档,因此您始终可以将它们组合成任何您喜欢的组合的更大文档。
如果您想要一些块的条件执行,并且有几个不同的条件组合可以运行,请使用R Markdown YAML头,并包括一个params
元素。
----
params:
report_type: "weekly" # should be "weekly" or "yearly"
----
您可以通过设置 eval
和 include
块选项来确定运行哪些块。
```{r, some_chunk, eval = params$report_type == "weekly", include = params$report_type == "weekly"}
# chunk contents
```
purl
的输出文件(据我所知,这种选项不存在)。 - CL.hook_purl
来实现。请查看 第123行:您可以尝试将output
替换为另一个文件名,该文件名是基于(新创建的)块选项生成的。但是,我不愿意实现并发布此答案,因为我不确定不写入.knitEnv$tangle.file
是否会产生不良副作用。 - CL.