我刚刚发现了Sweave和R。我看过一些Sweave文档的例子,也开始自己写一两个。在R中进行计算并将结果直接输出到LaTeX文档的能力给我留下了深刻的印象。
现在我考虑的是由几个页面和几个部分组成的更大的文档(就像我们通常使用LaTeX时一样)。使用LaTeX (我使用WinEdt),我设置了一个主文档(如main.tex),然后有其他的辅助文档,如introduction.tex,discussion.tex等。
我的问题是:我们也可以用Sweave做到这一点吗?现在,我正在单独处理单个Sweave文档(.Rnw)。我们是否可以像通常使用LaTeX那样拥有多个Sweave文档(一个是主文档,另一个是辅助文档)?
一种解决方法是拥有单独的Sweave文件,然后扫描它们以生成R LaTeX块,这些块可以复制到LaTeX文档中,但是整个想法看起来非常低效和耗时。
请务必让我们知道你有什么建议和解决方案。
非常感谢。
发布于 2011-12-03 16:27:28
以下是对我非常有效的方法:
我有一个主文件("master.Rnw"),它没有文本,只是用来收集最终形成文档的文件(章节、章节)。
然后我有一个包含R代码的文件,它在各种其他文件中被重用("func.Rnw")。在这里,我有很多命名的块
<<my_fun_1,eval=FALSE,echo=FALSE>>=
# code:
c <- a * b
@在master.Rnw中,我在\begin{document}之后做的第一件事是
\SweaveInput{func.Rnw}从那里,我有我的命名块可用。在我现在可以拥有的文件"chap1.Rnw“中
<<echo=FALSE>>=
a <- 10
b <- 25
<<my_fun_1>>
c
@当然,我必须
\SweaveInput{chap1.Rnw})进入master.Rnw。
我只需要对生成的master.tex文件执行\Sweave{master.Rnw},然后再对其进行处理,而不需要复制/粘贴或处理多个文件。
我正在写一篇由大约25个表格和图形组成的60+页面,到目前为止一切都运行得很好。
希望这对你有帮助,雷纳
发布于 2011-12-04 21:11:18
我正在用斯威夫写一本书,大约有16章。我同意将makefile与多个Rnw文件一起使用是一个好主意。关于这种方法的另一个好处是make可以并行运行(我认为是-p),因此根据章节的对象相互依赖的方式,你可以同时运行很多代码。
对我来说有所不同的是缓存。我的几个代码块可以运行几天,但在写这本书的过程中没有变化。有一些包允许您在运行结果时保存结果,并且仅在块所依赖的对象发生更改时才重新运行块。
有几个包可以做到这一点。请参见:
http://cran.r-project.org/web/views/ReproducibleResearch.html
我使用Bioconductor的weaver包。
当我在大脑转储的时候...如果你有多个作者,我发现一个共享的Dropbox帐户是维护项目的一个很好的方式。
最大值
发布于 2013-07-03 01:07:26
我推荐使用RStudio (http://www.rstudio.com/ide/)而不是WinEdt。Sweave很好地集成到了集成开发环境中,与WinEdt一样,您可以将一个文件设置为主文件。在主文件中,可以使用以下命令包含子文件
\SweaveInput{Child.Rnw}您可以通过包含以下指令将子文件链接回主文件
% !Rnw root = Master.Rnw在子文件中。这样,在处理子文件和排版时,RStudio就知道排版主文件。
有关详细信息,请参阅http://www.rstudio.com/ide/docs/authoring/multiple_rnw_files上的RStudio文档
最好的特性是,即使在处理多文件文档时,Synctex和TeX错误日志导航仍然有效。
https://stackoverflow.com/questions/8366193
复制相似问题