使用新的.Rnw文件共享旧的knitr缓存

时间:2013-09-02 14:59:06

标签: r knitr

我正在编写两个报告(例如,example1.Rnw和example2.Rnw,比如说),我希望能够在第二个文档中访问和使用缓存块。

假设example1.Rnw是

\documentclass[a4paper, 11pt]{article}
\begin{document} 
<<simpleExample, cache=TRUE>>=
  z<-1+1
@
\end{document}

然后我认为example2.Rnw就像是

\documentclass[a4paper, 11pt]{article}
\begin{document}
<<setup>>=
 opts_chunk$set(cache.path = "~/DirectoryOfExample1/cache")
@
<<simplePrint, dependson = 'simpleExample'>>=
  print(z)
@
\end{document}

除了我没有使用外部化之外,这似乎与此问题How to cache knitr chunks across two (or more) files?类似。是否有可能以这种方式在新文档中重用旧缓存,如果是这样,怎么办?

1 个答案:

答案 0 :(得分:1)

可以重用缓存但IMHO必须在 example2.Rnw 文件中复制simpleExample块。它必须与 example1.Rnw 中完全相同(没有不同的空格,没有不同的选项,......)。

example2.Rnw:

\documentclass[a4paper, 11pt]{article}
\begin{document}
<<setup>>=
 opts_chunk$set(cache.path = "~/DirectoryOfExample1/cache")
@
<<simpleExample, cache=TRUE>>=
  z<-1+1
@
<<simplePrint, dependson = 'simpleExample'>>=
  print(z)
@
\end{document}