micturalgia
micturalgia

Reputation: 325

Use rmarkdown/knitr to hold all code until the end

I'd like to be able to generate a document using knitr/rmarkdown that keeps all the output together, but leaves the code until the end, ideally as a referenced footnote of sorts (i.e. the code for each figure or output can be looked up in the appendix using a footnote). Is this possible?

Upvotes: 11

Views: 4695

Answers (2)

Francisco Paz
Francisco Paz

Reputation: 61

One solution is add this chunk at the end.

{r ref.label=knitr::all_labels(), echo=TRUE, eval=FALSE} 

Then you will have all the code together whitout evaluation.

Upvotes: 6

Marco Torchiano
Marco Torchiano

Reputation: 732

If I understand correctly what you mean. You can add a label to your original code chunk and then refer to it using a ref.label property and prevent its further execution with eval=FALSE.

For instance:

 # Header
 Bla bla ...
 ````{r plot1,echo=FALSE}
 x = rnorm(100,10,5)
 y = rnorm(100,10,5)
 plot(x,y)
 ````

 # Appendix

 Code chunk:
 ````{r ref.label="plot1",eval=FALSE}
 ```

The first chunk is executed (without echo) and shows a figure, the second chunk just echoes the first chunk's source.

Upvotes: 12

Related Questions