在不重新运行代码的情况下,使用Markdown生成PDF文档

8
我用R语言编写了一些算法(Markdown格式),这些算法需要运行相当长的时间才能完成。在我运行代码并确保其正常工作之后,我会开始编织PDF文件。然而,当所有代码都令人满意时,我就会继续编织PDF输出,因此在生成PDF时代码必须再次运行,这样会使运行时间加倍-检查一次并运行代码,然后再次生成PDF时再运行代码。
我的问题是:
如何在Markdown中编织PDF而不必重新运行所有代码?
特别是如果有拼写错误或我需要纠正的符号,这将非常令人沮丧。
2个回答

1
为了停止运行一个文档中的所有代码,在主设置块中添加选项eval=FALSE
{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, eval=FALSE)

您还可以将此添加到任何单个代码块中的设置行中,以防止仅运行该代码块。
{r algorithm1, eval=FALSE}
#insert long-running algorithm here

这里是RStudio社区帖子的链接,该问题也在那里提出:https://community.rstudio.com/t/how-to-knit-a-document-without-rerunnning-code/36601


1

我打赌大多数人都在寻找一种方法来显示代码的答案,但不需要重新运行代码。如果是这种情况,那么这个方法非常有效:

cache = TRUE

实现的方法:

```{r, cache = TRUE}
#your code
```

高级用法:

撤消它的方法就像这样简单

cache = FALSE

如果您想创建一个新的执行并将其存储在缓存中,您必须需要使用cache = TRUE。您会发现结果总是相同的,因此,为了撤消它,即使代码中有微小的更改也会使代码重新运行,只需在任何地方添加一个空格、缩进...就可以解决问题!

更多信息:knitr的缓存

注意! 这样做的效果是将您当前的运行存储在缓存中,因此,如果您重新运行代码,答案将是相同的,请注意在哪里使用它,因为如果您忘记了放置它的位置,它可能导致始终具有相同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接