Archive for 2011年6月

cacheSweave使用简介


介绍

我假设你了解并会使用Sweave. 如果你不知道Sweave但知道并会用R和LaTeX,我强烈建议你学一下Sweave. 一个Sweave文档基本上是LaTeX文档和R code的组合。我现在几乎所有的consulting的报告,一些教课的文档等都用Sweave来写了。 Emacs对Sweave(通过noweb-mode)的支持也还算可以。

就因为Sweave是联合体,每次编译Sweave都得要重新跑一遍里面的R code. 简单的consulting当然没有什么,但有些加了simulation的东西这样每次编译要重新跑就不现实了。cacheSweave/pgfSweave就是为了解决这个问题而写的。

安装

  • 先保证你的R版本够新(R>=2.12). 如果你嫌用Ubuntu自带的R太老,你可 以加CRAN上的deb repository. 具体请google之。
  • 接下来你只要在R里 install.packages(c("filehash", "cacheSweave")) 一下即可。 filehash必须手动装(这应该 是cacheSweave的一个bug)。
  • Google并下载 Sweave.sh, 放到binary PATH里头。

基本使用

  • 正文例子. 基本上,就是在需要计算但不需要output verbatim/tex的code chunk上加参数 cache=TRUE . 当然,最好用 setCacheDir(cache) 设一个cache directory, 否则在你的working directory里会生成无数垃圾文件夹。
  • 命令行用法:
    Sweave.sh -c foo.Rnw
    

    第一次跑当然不会变快,但第二次跑就应该几乎不花什么时间了。

, ,

留下评论