Rmarkdown:如何显示输出和代码,但不运行代码?

时间:2019-01-02 14:04:08

标签: r r-markdown

我的问题与其他人完全不同。请再次阅读我的问题。

情况是这样的:

在Rmarkdown中,我有以下代码:

rnorm(1)

假设我第一次运行块时得到0.23,并且输出将显示在rmarkdwon'0.23'中,然后我在rmarkdown中编写:

Now there is a random number 0.23

设置echo=TRUE后,将执行代码,并再次显示代码和输出。但是我不想再次执行它。第一次运行代码时,我得到一个输出0.23。我想保留此0.23'并显示代码和输出。因此,代码不应再次运行。

如何在rmarkdown中修复输出并显示代码和输出,但不再次运行代码?

不要告诉我通过`varibale`引用rmakdown中的变量。我知道如何引用它,这不是我要问的。

1 个答案:

答案 0 :(得分:0)

原则上,您可以通过两种方式解决该问题:

  1. 不要在每次渲染输出时都执行代码,而是“记住”所述代码的某些执行结果,并在渲染时显示该代码。通过将cache=TRUE添加到您的块{r cache=TRUE}中,可以非常轻松地完成此操作。为了使其完全可复制,您还应该包括选项knitr::opts_chunk$set(cache.extra = knitr::rand_seed)。在此处阅读更多信息:https://yihui.name/knitr/demo/cache/#reproducibility-with-rng

  2. 确保您的代码产生可重复的结果。如果生成随机数,可以通过设置种子来实现,例如set.seed(1L)