我正在编写两个报告(例如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?类似,除了我没有使用外部化。是否可以通过这种方式在新文档中重用旧的缓存,如果可以,怎么办?

最佳答案

可以重用缓存,但是恕我直言,您必须在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}

关于r - 与新的.Rnw文件共享旧的Knitr缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18576110/

10-13 00:52