Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 386
micturalgia Avatar asked Feb 11 '15 15:02

micturalgia


2 Answers

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.

like image 172
Francisco Paz Avatar answered Oct 26 '22 17:10

Francisco Paz


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.

like image 30
Marco Torchiano Avatar answered Oct 26 '22 18:10

Marco Torchiano