knit the output, but also keep the intermediate objects

Is there a way to generate the usual routine output (say html) by rendering a .Rmd file with a R script, but also keep the objects generated during the process?

The purpose is to keep the objects in the global environment to allow further interactive exploration. I feel this may be a common workflow. Please let me know if you have any suggestions.

You can keep the intermediate .md file by going up to the gear at the top of your .Rmd file:

Then clicking advanced and checking the box:

1 Like

I think you could be interested in the html_notebook format

This is because you can get a live preview of your html each time you save the Rmd, and still work inside the Rmd for further analysis with every object in the workspace.
This format uses cache to render quickly during work phase.

This seems something that could be close to you workflow.

Hope it helps

2 Likes

Thanks for the workaround. I was hoping to avoid saving and loading huge workspaces. But it at least saving the time to regenerate them.

Thanks. I have been using R notebook. The issue there is the preview is not good enough for formal report, and I will have to re-knit it. The other issue is that there are some interactive inputs that's not supported by R markdown naturally and better live in the R script.

There is a clean argument within the rmarkdown::render function that, when set to FALSE, will keep all the intermediate files created. Also, when you render the .Rmd file, objects should appear in your global environment (at least in RStudio 1.2.1206.2)

Here's my sample rmd_test.Rmd

---
title: "Test"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

```{r cars}
summary(cars)
```

```{r}
cars_test <- cars
```


## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

that when rendered in an R script via

rmarkdown::render("rmd_test.Rmd", clean = FALSE)

should return the cars_test object to the global environment and also some .md files and the rmd_test_files folder.

2 Likes

Very nice example. This is exactly what I need. Thank you very much.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.