7

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

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

4

5 回答 5

5

新事物(用于多语言、多格式)文档可能是dexy.it,例如 opengamma.org 的这些将其用作后端。

dexy 背后的Ana也对此进行了很多讨论,所以也请查看dexy 博客

于 2011-02-17T20:02:31.770 回答
4

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

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

http://www.orgmode.org/

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

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

于 2011-02-17T19:00:20.107 回答
3

除了通过 R 的外语接口(如果支持的话,可能通过inlinesystem(). 对于它的价值,我只会使用system(); 这应该很容易。

您可以看到有关为 Python 提供 Sweave 等效项的上一个问题,其中一位受访者实际上创建了一个单独的接口。这可以让您了解嵌入可能尚不支持的其他语言需要什么。至少,您必须对 Sweave 驱动程序进行重大修改。

于 2011-02-17T18:24:16.260 回答
3

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

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

于 2011-02-17T19:09:33.033 回答
2

有一个 StatWeave 项目,它使用 java 而不是 R 来进行编织,但会运行多个程序而不仅仅是 R。我不知道让它来做 Perl 或其他类似的程序有多难,但是homepage 表明它已经适用于 R、SAS、Stata 和其他:

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

于 2011-02-17T18:37:10.067 回答