I understand that I can use the cache=TRUE
option to cache an R code chunk using R Markdown with knitr
. E.g., It might look something like this:
```{r longanalysis, cache=TRUE} for (i in 1:5000) { lm((i+1)~i) } ```
And I realise that If I wanted to disable the cache for that analysis that I could change the option to cache=FALSE
in the code chunk. However, if I have many R code chunks with caching enabled, this would require a careful find and replace operation.
cache=FALSE
for an entire R Markdown document?I've seen this example where the first line is. So I imagine this is a way of setting global setting, but I think local settings override global settings.
`r opts_chunk$set(fig.width=5, fig.height=5, fig.path='')`
If you run into problems with cached output you can always clear the knitr cache by removing the folder named with a _cache suffix within your document's directory.
If you don't want any code chunks to run you can add eval = FALSE in your setup chunk with knitr::opts_chunk$set() . If you want only some chunks to run you can add eval = FALSE to only the chunk headers of those you don't want to run.
Caching a code chunk in R Markdown R Markdown has a built-in caching feature that can be enabled by setting cache=TRUE in the chunk's header. The second time the chunk is run, both the visual output and any objects created are loaded from disk.
It seems the default is set to FALSE and local chunk options override the global options but one thing you could do is set the global options to cache by default by adding this to the top of your document
`r opts_chunk$set(cache=TRUE)`
Then for the sections you don't want cached ever you would explicitly set those sections to cache=FALSE.
Then if you want to set the whole document to not cache anything you could change the global option to FALSE and rerun it.
The problem is that if any of the chunk options are set to cache=TRUE then those will override the global setting and won't be rerun if you set the global option to FALSE. So I think the only way to achieve what you want is to change the default to cache=TRUE, explicitly set chunks that you don't want cached to have cache=FALSE, and then you can switch the global option to FALSE to do what you want when the time occurs.
knitr
creates a directory to store the cached objects. By default it is called cache
. To ensure that all analyses are run regardless of the code chunks cache
setting, simply delete the contents of the cache directory.
Thus, in Rstudio on Linux
Tools - Shell
to open a console in the working directory containing the markdown file.rm cache/*
This is my basic workflow at the moment
`r opts_chunk$set(cache=TRUE)`
to the R Markdown file.dependson
option in knitr. Naming also permits selective deletion of named R code chunks in the cache directory.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With