纠结编织器代码块不是一个而是几个文件

Hol*_*ing 8 r knitr

我是knitr的新用户.我知道knitr可以"纠结"(取自Literate编程社区)或将源代码块提取到R脚本文件中.作为组织模式用户,我习惯于能够为每个代码块指定特定文件,对于不同的块可能具有相同的文件.当在组织模式中"纠缠"或提取源时,不会生成一个输出代码文件,而是生成多个代码文件(这有助于大型项目中的模块化).

我想知道knitr中是否有类似的东西?我可以逐块指定knitr中的输出文件吗?

Ric*_*ton 3

您的问题至少有两种不同的解读,每种解读都需要略有不同的工作流程。

如果每个块要写入单独的输出文档,那么为了帮助模块化,您应该将报告部分拆分为多个文档。由于knitr支持子文档,您始终可以按照您喜欢的任何组合将它们重新组合成更大的文档。

如果您希望有条件地执行某些块,并且可以运行几种不同的条件组合,请使用R Markdown YAML 标头并包含一个params元素。

----
params:
  report_type: "weekly" # should be "weekly" or "yearly"
----
Run Code Online (Sandbox Code Playgroud)

您可以通过设置evalincludechunk 选项来设置运行哪些块。

```{r, some_chunk, eval = params$report_type == "weekly", include = params$report_type == "weekly"}
# chunk contents
```
Run Code Online (Sandbox Code Playgroud)