我的问题与其他人完全不同。请再次阅读我的问题。
情况是这样的:
在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中的变量。我知道如何引用它,这不是我要问的。
答案 0 :(得分:0)
原则上,您可以通过两种方式解决该问题:
不要在每次渲染输出时都执行代码,而是“记住”所述代码的某些执行结果,并在渲染时显示该代码。通过将cache=TRUE
添加到您的块{r cache=TRUE}
中,可以非常轻松地完成此操作。为了使其完全可复制,您还应该包括选项knitr::opts_chunk$set(cache.extra = knitr::rand_seed)
。在此处阅读更多信息:https://yihui.name/knitr/demo/cache/#reproducibility-with-rng
确保您的代码产生可重复的结果。如果生成随机数,可以通过设置种子来实现,例如set.seed(1L)