首页 > 解决方案 > 从 R Markdown 生成两个版本的输出

问题描述

我正在使用 R Markdown 为学生创建练习表。为此,我想渲染 a) 练习表本身和 b) 直接显示解决方案的练习表。

我目前正在使用一种解决方案,该解决方案允许我通过执行以下操作在生成练习表和解决方案表之间切换:

yaml 标头包括:

header-includes:
 - \usepackage{comment}
params:
  soln: TRUE

然后我写这样的解决方案:

`r if(!params$soln) {"\\begin{comment}"}`

Here goes text or code.

`r if(!params$soln) {"\\end{comment}"}`

通过更改soln参数,我可以控制我得到的输出。这很好用,但我可以想象一种更有效的方法。

有谁知道让 R Markdown 同时生成两个输出文件的方法,一个 withsoln: TRUE和一个 with soln: FALSE

标签: rr-markdown

解决方案


您可以rmarkdown::render使用适当的参数调用两次:

rmarkdown::render("practice-sheets.Rmd", output_file = "practice.pdf", params = list(soln = TRUE))
rmarkdown::render("practice-sheets.Rmd", output_file = "solution.pdf", params = list(soln = FALSE))

推荐阅读