如何在RStudio上定义Swave驱动程序

如何在RStudio上定义Swave驱动程序,r,latex,rstudio,sweave,R,Latex,Rstudio,Sweave,我正在使用swave包根据我的R代码生成报告。然而,由于一些代码块需要花费太多的时间来处理,我计划使用CacheSWave包来避免这个问题 在中,它说我需要指定一个驱动程序 Sweave("foo.Rnw", driver = cacheSweaveDriver) 但是,我希望继续使用RStudio中的“Compile PDF”按钮,以便它自动运行swave命令和pdflatex 调用swave函数时,如何告诉RStudio使用该特定驱动程序? 预期的结果是,当我两次处理以下“.Rnw”代码时

我正在使用
swave
包根据我的R代码生成报告。然而,由于一些代码块需要花费太多的时间来处理,我计划使用CacheSWave包来避免这个问题

在中,它说我需要指定一个驱动程序

Sweave("foo.Rnw", driver = cacheSweaveDriver)
但是,我希望继续使用RStudio中的“Compile PDF”按钮,以便它自动运行
swave
命令和
pdflatex

调用
swave
函数时,如何告诉RStudio使用该特定驱动程序?

预期的结果是,当我两次处理以下“.Rnw”代码时(示例基于取自
cacheswave
的vignette的代码),第二次会更快,因为数据是缓存的

\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}
<cache=TRUE>>=
set.seed(1)
x <- local({
  Sys.sleep(10)
  rnorm(100)
})
results <- mean(x)
@
\end{document}
然后再“编译PDF”两次,但没有成功

解决方案:

如本文所述,我在工作目录中创建了一个名为.Rprofile的文件,其中包含以下内容:

library(utils)
library(cacheSweave)
assignInNamespace("RweaveLatex", cacheSweave::cacheSweaveDriver, "utils")

切换到knitr可能是值得的,它可以让您在本机上缓存特定的块。
library(utils)
library(cacheSweave)
assignInNamespace("RweaveLatex", cacheSweave::cacheSweaveDriver, "utils")