- 2007年11月27日
将这个例子拷贝到一个文件(建议没有后缀),在 R 中使用 Sweave 编译。即可在工作区域生成供使用的 LaTeX 源码和供使用的绘图(ps和pdf)。
PS:
不太喜欢 Emacs 下面的noweb模式,故……
\documentclass[CJK]{cctart}<br />
\usepackage{verbatim}<br />
\title{Sweave 实例}<br />
\author{}<br />
\date{}<br />
\SweaveOpts{echo=FALSE}<br />
<br />
\begin{document}<br />
<br />
\maketitle<br />
<br />
使用 Sweave 可以很容易地将 \LaTeX{} 同 R 的代码混排文档转化为可<br />
编译的 \LaTeX{} 文档。<br />
<br />
在这种混排的文档里,基本机构仍然是 \LaTeX{} 形式的,唯一的区别是,<br />
R 代码需要放置在以 $<<>>=$ 为开头,$@$为结尾的段落里面。开头部分<br />
有两个常用的参数:echo和fig,使用逻辑值分别表示是否将 R 代码输入<br />
作为 \LaTeX{} 文本输出;是否在 \LaTeX{} 文档中绘制图形。<br />
这篇文档只需要在 R 中编译一遍,即可形成\LaTeX{}需要的输出(文件)。<br />
<<echo = TRUE>>=<br />
require(stats)<br />
## Student's paired t-test<br />
m <- t.test(extra ~ group, data = sleep, paired = TRUE)<br />
print(m)<br />
@<br />
R 中的运算结果很容易插入到标准文档,<br />
比如\texttt{sleep}数据的配对t检验结果<br />
中的$p$-value是\Sexpr{format.pval(m$p.value)};<br />
或者是直接运算<br />
<<echo=TRUE,results=hide>>=<br />
choose(49,6)<br />
@<br />
美国威力球(类似于福彩双色球)的理论组合数等于\Sexpr{choose(49,6)}。<br />
<br />
R 代码中可以随意写注释,但这些注释默认不会被输出。如果要求输出注释,<br />
抱歉,现在还没有更好的解决办法。<br />
<br />
使用 Sweave 还可以将 R 生成的图形加入到 \LaTeX{} 文档中,而不必事先<br />
做出 \LaTeX{} 需要的图形文件\footnote{Sweave会自动生成ps和pdf图形}。<br />
下图是关于Titanic号根据海难中人员的经济状况、性别、年龄和是否存活四<br />
个变量绘制的马赛克图:<br />
<br />
<<fig=TRUE,echo=FALSE>>=<br />
require(graphics)<br />
mosaicplot(Titanic, main = "Survival on the Titanic")<br />
@<br />
<br />
\end{document}