SWeave与非R代码块?

时间:2011-02-17 18:00:59

标签: shell r sweave

我经常使用Sweave来生成LaTeX文档,其中通过执行R代码动态生成某些块。这很有效 - 但是也可以使用以不同方式执行的代码块,例如,通过执行shell中的代码,或运行Perl,等等?能够混合起来会很有帮助,所以我可以做一些事情,比如运行一些shell命令来获取一些数据,运行一些perl命令来预处理它,然后运行R命令来分析它。

当然我可以使用所有R块并使用system()作为穷人的替代品,但这并不能使文档中的阅读非常愉快。

5 个答案:

答案 0 :(得分:5)

新的新内容(适用于多语言,多格式)文档可能是dexy.it,例如这些guys at opengamma.org用作后端。

支持dexy的

Ana也在讨论它,所以也请看dexy blog

答案 1 :(得分:4)

它与Sweave没有直接关系,但是 org-babel ,它是Emacs org-mode 的一部分,允许在一个文件中混合不同语言的代码块,将数据从一个块传递到另一个块,执行它们,并从输出生成LaTeX或HTML导出。

您可以在此处找到有关org-mode的更多信息:

http://www.orgmode.org/

看看org-babel是如何运作的:

http://orgmode.org/worg/org-contrib/babel/

答案 2 :(得分:3)

除了通过R的外语界面(如果支持的话可能通过inline)或system()之外,肯定没有 easy 方法可以做到这一点。对于它的价值,我只会使用system();这应该很容易。

您可以看到this previous question about having a Sweave equivalent for Python,其中一位受访者实际创建了一个单独的界面。这可以让您了解嵌入其他可能尚未支持的语言需要什么。至少,你必须对Sweave司机进行重大黑客攻击。

答案 3 :(得分:3)

您知道emacs“org-mode,更具体地说,Babel吗?如果您已经了解Emacs或愿意切换到Emacs,那么org-mode和Babel就是您问题的答案( s)。

例如,我目前正在处理一个包含一些shell脚本的文档,使用R进行计算并使用点(graphviz)创建流程图。组织模式可以导出各种格式,例如LaTeX(这就是我使用的)。

答案 4 :(得分:2)

有一个StatWeave项目使用java而不是R来编织,但会运行多个程序而不仅仅是R.我不知道让它做Perl或其他类似的程序是多么困难,但主页表明它已经与R,SAS,Stata和其他人合作:

http://www.cs.uiowa.edu/~rlenth/StatWeave/