【发布时间】:2014-02-26 15:11:08
【问题描述】:
我正在使用sweave 包根据我的 R 代码制作报告。但是,由于某些代码块需要花费太多时间来处理,我打算使用 cacheSweave 包来避免这个问题。
在cacheSweave's vignette,它说我需要指定一个驱动程序
Sweave("foo.Rnw", driver = cacheSweaveDriver)
不过,我想继续使用 RStudio 中的“编译 PDF”按钮,以便它自动运行 Sweave 命令和 pdflatex。
我如何告诉 RStudio 在调用 Sweave 函数时使用该特定驱动程序?
预期的结果是,当我处理以下“.Rnw”代码两次(示例基于取自cacheSweave 的小插图的代码)时,第二次会快得多,因为数据被缓存了。
\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}
<cache=TRUE>>=
set.seed(1)
x <- local({
Sys.sleep(10)
rnorm(100)
})
results <- mean(x)
@
\end{document}
Sweave 函数帮助说 *环境变量 SWEAVE_OPTIONS 可用于覆盖驱动程序设置的初始选项*。所以我在 RStudio 控制台中尝试了以下命令,
Sys.setenv(SWEAVE_OPTIONS="driver=cacheSweaveDriver")
然后再次“编译 PDF”两次,但没有成功。
【问题讨论】:
-
可能值得切换到 knitr,它可以让你缓存特定的块。