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
第一次跑当然不会变快,但第二次跑就应该几乎不花什么时间了。