21

我们是一个中型学术研究实验室,其主要产出是用于分析大型数据集的新统计方法。我们通常使用 R 和 MATLAB/Octave 进行开发。

我们希望通过构建简单的向导式用户界面来访问我们的方法来扩展我们的工作范围,无论是像RNAfold这样的网络应用程序还是用于分析私有数据的独立应用程序。

理想情况下,我们希望接口能够做一些数据检查,只使用 FOSS,在 Mac 和 Windows 环境中运行,并且能够生成简单的图表和图形,可以输出为适合出版的图形。此外,我们喜欢 Python,因为它在实验室和我们的研究社区中是一种流行的语言。

但是,我们希望能够快速且廉价地开发和发布。我们很幸运能够资助实验室中的一位开发人员,而他/她必须支持多个项目。

有很多团体与我们有相同的需求和限制,因此能够为此类挑战制定一致的长期战略将很有用。

编辑 我要求就四种可能的方法发表评论,包括下面的评论摘要:

  1. 从 Python 调用 R 和 Octave 方法。
    答案:
  2. 在 Python 中重新实现我们的方法。一般来说,这并不容易,因为我们的方法依赖于在 R 和 Octave 中实现的其他方法。答案:
    • 没有对这种方法发表评论,这可能是一个坏主意。
  3. 使用不同的框架来构建用户界面。
    答案:
    • 直接在 R 中构建 GUI 和 Web 应用程序怎么样?(来自hadley,请参阅工具参考的答案)
  4. 我们尚未考虑的其他想法,例如与Taverna等工作流管理系统集成。
    答案:

我的首选答案

我首先要研究 Spacedman 建议的方法使用 QtDesignerPyQt4构建 UI 并使用RPy调用R。我们有很多没有编程背景的学生想在实验室做志愿者,而 QtDesigner 看起来像是我们可以训练他们有效使用的东西。

我想按照hadley的建议直接在 R 中开发 GUI,但我认为我需要使用QtDesigner的 RQt 似乎没有处于积极开发中(最后一次更新是 2009 年夏天)。

此外,看起来我们可能不得不开始专门在 R 中实现我们的方法,并从 MATLAB/Octave 转换为 R。在我的领域中,这可能不是一个坏主意。

附录:

  1. 用于简化用户界面构建的 Python 库:
  2. 其他集成 Python、R 和 Octave 的项目:
  3. 用于制作 GUI 的 GUI:
4

7 回答 7

9

为什么不直接在 R 中继续开发呢?有许多软件包允许您开发 GUI(gWidgets RGtk、tcl/tk、RQt、Rwxwidgets、rjava)或Web 应用程序

于 2010-09-11T21:19:23.020 回答
8

我会为 UI 使用 Python 和 PyQt4,并使用 Rpy 与 R 交互。

有用于界面设计的 QtDesigner,您可以从中生成 python。QtAssistant 为您提供了一个完全超链接的 Qt 文档集,这是我用过的最好的。

非常值得!

于 2010-09-12T09:10:16.680 回答
5

这是一项艰巨的任务——多平台、多后端(R 和 Ocatve),而且价格便宜、快速且易于使用!

从我的头顶看这些

  • Sage:他们有所谓的笔记本,它们是交互式网页,并在 userR 上展示了一个不错的演示!2010;我认为八度也被覆盖了

  • Shogun:它还集成了 Python、R 和 Octave,并且可能有一些工具供您使用。

于 2010-09-11T18:12:30.443 回答
4

我一直在寻找类似的东西——R 中的简单快速 GUI。似乎 RStudio 的人有一个新的选择。

Shiny对于没有太多编码的小型 Web 界面应该足够了。如果您需要简单的 UI 输入/输出样式,这似乎是一个可行的选择。

于 2012-12-05T14:45:02.930 回答
2

对于 R 和 Python 集成,您可能还想看看

于 2010-09-11T20:05:47.343 回答
2

除了将 Octave 应用程序设置为服务器并调用 Python 客户端之外,我还没有尝试将 Octave 与 Python 直接连接,但我很幸运地将 R 与 Python 提供的RPy集成在一起。在我们的一些应用程序中,我们构建了例如wxPython + matplotlib Python 前端,并通过 RPy 直接调用 R 脚本。

于 2010-09-11T18:35:06.537 回答
1

您可以尝试查看RedR,它可以让您将 R 包包装在 Python GUI 中。

于 2010-09-13T13:13:53.727 回答