我的问题可能不像标题所说的那么笼统。我在Mac上使用MySQL数据库运行R来存储数据。我使用Komodo / Sciviews-R已经有一段时间了。最近,我有了自动生成报告的需求,并研究了Sweave。我猜StatET / Eclipse似乎是瑞典人的“标准”解决方案。
1)从Komodo切换到StatET Eclipse是否合理?我以前尝试过StatET,但选择了Komodo而不是StatET,因为我非常喜欢它的calltip / autosuggest和更方便的配置。
2)生成Sweave文件的合理工作流程是什么?通常我会先开发我的R代码,然后再关心报告。我今天才知道,在Sweave中有一个同时包含R代码和Latex代码的文件,并且从这个文件中创建了.tex文档。虽然示例文件看起来很方便,但无法想象如何将250多行R代码输入到文件中,并将其与Latex混合在一起。
有没有可能只将qplot()和ggplot()语句输入到这样的文档中,并以某种方式提供数据库连接和中间结果等功能?
或者只是习惯了Latex和R代码的混合?
有关任何建议、提示、链接和返回根源的信息,请访问…
发布于 2010-07-22 03:59:39
你已经问了几个问题,所以这里有几个答案;
StatEt/Eclipse是使用Sweave的正确方式吗?
不一定(注意:我是一个狂热的StatEt/Eclipse用户,我将它用于纯R和Sweave/R,我喜欢它,我还没有使用过Komodo / sciviews-R)。您应该能够从任何生成.tex文件的R命令行运行sweave命令。然后,您可以将.tex文件转换为可从任何tex环境读取的文件(如pdf)。
什么是好的Sweave工作流程?
当我想要把一个r脚本转换成一个sweave报表时,我通常会从一个空的sweave模板开始,然后将我的整个R脚本复制/粘贴到紧跟在标题后面的sweave块中,即;
<<label=myEntireRScript, echo=false, include=false>>
#Insert code here
myTable<-dataframe(...)
myPlot<-qplot(....)
@
然后我遍历并找到我想要报告的部分。例如,如果我想要将一个表放入报告中,我将剪切R块并放入一个xtable块,变量和绘图也是如此。
<<label=myEntireRScript, echo=false, include=false>>=
#Insert code here
@
Put any text I want before my table here, maybe with a \Sexpr{print(variable)} named variable
<<label=myTable, result=Tex>>=
myTable<-dataframe(...)
print(xtable(mytable,...),...)
@
Any text I want before my figure
<label=myplot, result=figure>>=
myPlot<-qplot(....)
print(qplot)
@
发布于 2010-07-21 19:14:48
你可能想看看these related SO posts。我帖子的其余部分与你的问题2有关。
在使用Sweave创建报告时,我通常将大部分R代码和报告文本分开。如果R代码运行起来很快,那么我希望在.Rnw文件的开头包含如下内容:
<<>>
source('/path/to/script.r')
@
另一方面,如果R代码需要很长时间,我通常会在R脚本的末尾包含如下内容:
Sweave('/path/to/report.Rnw'); system('pdflatex report.tex')
这样,我就可以快速地重新生成报告,而无需再次运行所有的R代码。然后,R在Sweave文件中要做的唯一工作就是打印表格,制作图形,也许还可以提取一些图形。
发布于 2010-07-21 23:23:01
与source()
一样,我更喜欢将R和Sweave文件分开,但我更喜欢用save.image()
保存工作区,而不是使用nullglob保存文件。这就避免了在编译每个.Rnw文件时运行R计算(而且我最终总是对排版进行了更多的修改)。
我的一般工作流程是在自己的文件夹中使用自己的R文件完成每个论文/项目。当计算端“完成”时,我使用save.image()
来按原样存储所有工作区变量。
然后,在同一目录下的.Rnw文件中,我使用setwd()
设置工作目录,并使用load(".Rdata")
加载所有变量。当然,您可以更改工作区的名称,但我会为每个文件夹更改一个工作区,并保留默认名称。哦,如果您修改了R文件,请务必保存工作区图像,并注意工作区和.Rnw文件中的变量,但这些变量不再是R文件的一部分……这就是save.image()
方法可能会带来一些麻烦的地方。
我使用的是Mac,如果你有点极客,我建议你使用TextMate,如果你真的很极客,我建议使用emacs/ess。我使用vim和命令行R,但是emacs/ess在大多数情况下最有效。如果您是长期从事这项工作,我怀疑您是否会后悔学习R、Sweave和LaTeX的emacs/ess。
https://stackoverflow.com/questions/3297491
复制相似问题