【问题标题】:How to define Sweave driver on RStudio如何在 RStudio 上定义 Sweave 驱动程序
【发布时间】: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,它可以让你缓存特定的块。

标签: r latex rstudio sweave


【解决方案1】:

解决办法:

正如"ghost" blog 中所发布的,我在我的工作目录中创建了一个名为 .Rprofile 的文件,其内容如下:

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

【讨论】:

    猜你喜欢
    • 2016-09-22
    • 2012-06-05
    • 2021-05-28
    • 1970-01-01
    • 2011-12-11
    • 2013-04-08
    • 2018-03-26
    • 1970-01-01
    • 2017-12-10
    相关资源
    最近更新 更多