如何跨越缓存两个(或多个)文件knitr块?(How to cache knitr chunks a

2019-11-02 06:00发布

我想用一些R-代码在两个不同的* .Rnw文件,并希望跨这些文件使用缓存。 我读http://yihui.name/knitr/demo/externalization/

缓存在一个文件中只是正常工作。 但在运行第二个整个代码再次执行:

plain.R

## @knitr random1
a <- rnorm(10)
a

doc1.Rnw(和doc2.Rnw)

\documentclass{article}

<<set-options, echo=FALSE, cache=FALSE>>=
 options(replace.assign=TRUE)
 opts_chunk$set(external=TRUE, cache=TRUE, echo=FALSE, fig=TRUE)
 read_chunk('plain.R')
@

\title{Doc 1}

\begin{document}

<<random1>>=
@

\end{document}

是否有共享多个文档的高速缓存的方法吗?

Answer 1:

这是完全可以重复使用多个源文件缓存。 请阅读缓存页面仔细了解时,高速缓存将被重建。 在你的情况下,不应该将高速缓存中被重建,除非你的两个文件具有不同的组块的选择(条件1),或者不同getOption('width')条件3),因为您的代码保持相同(条件2)。

你必须张贴重复的例子,否则这不被认为是真正的问题。



Answer 2:

完全复位之后的例子事实证明,缓存是由两个文件重复使用。 我不知道以前是什么原因导致的问题....

但是,在一个更大的项目中的块没有做缓存。 所以,我不知道是什么原因造成的问题 - 的空间也许只是一个不同的计....



文章来源: How to cache knitr chunks across two (or more) files?
标签: r knitr