我是可重复研究的忠实粉丝。
我经常使用make,Sweave,LaTeX和R来生成大型研究报告(即大量Sexpr()
命令和大量图表和表格。)
显然,R CMD Sweave
在编译时识别R代码块中的某些错误。
但是生成的PDF仍然可能包含不良结果。
我有一些校对这些文件的策略,但我有兴趣在SO上向其他人学习。
答案 0 :(得分:4)
我不确定这是否是您正在寻找的,但如果您使用emacs,auctex和emacs说统计数据,大多数问题都可以解决。它们都在Linux存储库中可用,并且有一个可用于Windows的预编译二进制文件http://vgoulet.act.ulaval.ca/en/emacs/windows/
Emacs的主要优点是你可以将R控制台放在一个窗口中,将你的tex源放在另一个窗口中,Emacs将在.Rnw文件中适当地突出显示LaTeX和R,这真的帮助我发现了错误。您还可以评估R代码的小区域,并在TeX中预览表格和其他对象。它绝对是一个学习曲线,但我已经使用了大约一个月,它已经让我在可重复的研究中提高了约50%的效率。一旦你知道了一些键绑定就很直观,而另一个优点是Emacs几乎可以为太阳下的每个编程语言提供模式,这意味着学习如何使用它的时间将会一次又一次地回报。 进一步来说 1)Emacs在这里帮助语法高亮和预览区域,以确保特定的表格按您的方式格式化,没有丢失的行或标签。 2)我通常最终会犯拼写错误并打包丢失错误,因为我倾向于在文档的多次传递中开发我的统计分析。 3)Emacs将发现任何编译错误,并且可以在编译整个文档之前单独测试R代码。 4)如果你使用命令sweave(Alt + m,s),然后编译到LateX ctrl c,(通常两次获得标签和Bibtex右)另一个ctrl c将打开PDF进行查看(遗憾的是,它没有打开默认情况下在emacs中,但我想有人已经做了一个包或脚本来启用它。)
我确信其他人可以提供更多关于emacs用于此类工作的例子,正如我所说,我刚刚开始使用它(但它比我用过的所有其他tex和R程序要好得多 - Technix中心,kile,texmaker)。
我不建议那些不了解R和LaTeX的人,但如果你这样做,它会使你的效率提高几个数量级。
答案 1 :(得分:3)
好问题。一个人看到的问题在很大程度上取决于他正在做的工作。对我来说,最常见的非R问题是拼写错误,数字出了问题,有错误的等式,等等。
我发现最可靠,独立于平台且高效的错误捕获策略是经常导出到PDF 。工作一点点;校验。多做一点,再检查一下。是的,这对于一个大型项目来说很糟糕。但是像cacheSweave这样的工具可以提供帮助。最重要的是 - 如果你在整个地方工作2个小时并得到一个错误,试图追踪它就没那么有趣。
对于一个大型项目,当我在块287(或其他东西)中出现错误时,需要花一点时间来纠结R代码。从上下文中我通常可以找出错误的位置并快速导航到那里。另一个选择是命名代码块,但谁想要提出591个名字?
对于方程/数学问题,具有内联预览的编辑器很有帮助。 LyX有这个,AUCTeX也是如此。这样,如果你错过某个地方的斜线或逗号,那么你就会立刻知道,因为预览很混乱。这为我节省了无数个小时。
LyX不存在图像的内联预览(由Sweave生成),但它适用于Org模式。出于同样的原因,这是非常非常强大的优势。
我最近没有任何其他LaTeX错误,因为LyX是所见即所得;它会在没有我的情况下生成LaTeX。在这方面,组织模式也很好。 AUCTeX和ESS有工具可以提供帮助,并且没问题(Rstudio看起来很相似)。我还没有和Eclipse等人一起玩过。非常。
如果不研究日志,如页面上运行的URL(或表格等),很难注意到一些问题。 PDF频繁。工作和检查。这是最好的方式,除非另一组眼睛进行同行评审。
顺便说一下,LyX用aspell拼写检查非LaTeX标记。
答案 2 :(得分:1)
当你的意思是“校对”时,我不确定你究竟在寻找什么,但我发现在LaTeX中一般使用大量\marginpar
语句来指出未来修复的任何问题都能很好地解决。另一种方法是使用一个好的PDF阅读器将注释放在最终的PDF中,但如果你重新编译它们就会消失。
对于我们这些使用Emacs而非永久性手部麻烦的人(不是开玩笑!),Sweave的基于GUI的选项是Eclipse。它可以设置为一键编译Sweave,正确的代码突出显示,并具有通常的IDE功能。 Eclipse还通过包提供拼写检查,这有助于校对。不确定你是否可以将拼写检查器设置为仅对LaTeX部分进行校样,这将是理想的。
RStudio也是一个新的但有趣的选择。