Rnw文档是保存了R代码的Latex文档。人们希望Latex中的R代码可以自动运行, 并将运行结果, 复制到Latex代码中。 同时, 给出绘制的图形等。
例如以下的代码, 是一篇Rnw文档的内容, 将其拷贝, 粘贴到记事本中, 另存为test.Rnw文件即可。 注意编码要选ANSI。
1 | \documentclass[CJK]{cctart} |
在Rnw文档中, R代码需要放在 <<fig=TRUE,echo=TRUE>>=
和 @
之间。 其中的代码一定要可以执行。 在后续处理中,R的Sweave函数和knitr程序包中的knitr函数, 都能够生成相应的tex文件, 以及所需要包含的pdf图形。
fig=TRUE
表示, 要包括代码生成的图形;echo=TRUE
表示, 要包括运行结果所生成的代码。
Sweave函数就是为了处理Rnw文件而生的。 但是Sweave在处理中文的Latex文档时, 需要设定的参数很多, 并且常常出错。幸运的是,我们还有谢益辉编写的knitr程序包。
kintr在处理Rnw文档非常方便。 假设Rnw文档放在
C:/Users/Jinlong/Desktop/Sweave
文件夹之下,名为test.Rmw, 则使用以下R代码:
1 | setwd("C:/Users/USER/Desktop/Sweave") ### 转换到工作目录, |
即可在该目录下, 生成.tex文档, 以及需要包含的文件。
用TexWorks编译成pdf文档即可。
注意:kintr程序包在处理Rnw文档时,R代码的注释中不允许注释中有中文