基于R构建应用的最佳方式?

30 投票
4 回答
6820 浏览
提问于 2025-04-16 09:35

我想请教一下,如何构建一个使用R进行数据分析、表格生成和绘图的应用程序。我心里想的这个应用程序应该具备以下功能:

  • 在不同的标签页中显示各种数据表,类似于Excel,并且用户可以通过点击来对列进行排序。
  • 在一些对话框中接受用户输入的参数。
  • 动态显示图表(也就是说,图表会根据用户输入的内容变化),可以在一个标签页中显示,也可以在新的弹出窗口中显示。

需要注意的是,我并不是在谈论一个通用的前端/图形用户界面(GUI),比如说Rattle,而是一个具体的应用程序。

我想了解的一些问题包括:

  • 完全基于R的方法在Windows上是否可行?我在R-Journal的Rattle文章中看到的这段话让我很感兴趣:

有趣的是,Rattle的第一次实现实际上是用Python来处理回调,而用R来进行统计,使用了rpyRGtk2的发布使得Rattle的界面元素可以直接用R编写,因此Rattle成为了一个完全基于R的应用程序

  • 如果用其他语言来做GUI部分更好,那么哪种语言最合适呢?我希望找到一种构建GUI相对“简单”的语言,并且能够很好地与R集成。从这个StackOverflow的问题如何快速开发R和Octave方法的GUI(可能使用Python)?中,我看到Python + PyQt4 + QtDesigner + RPy2似乎是最佳组合。这是大家的共识吗?

  • 有没有人能推荐一些具体的(开源)应用程序,作为我可以学习的例子?

4 个回答

4

那传统的LAMP加上一个R后端怎么样呢?你可以选择把MySQL换成Postgres,也可以把PHP换成Perl。Rapache看起来也挺不错的:rapache.net

7

Python + Qt4 + RPy = 很棒的组合。

比如,看看Carson Farmer用Qgis和ManageR插件做了什么——这是一种完整的R语言接口,可以处理Qgis地图软件中的地理数据。

根据你需要的统计功能,如果不需要太复杂的统计,你甚至可以完全用Python来完成所有统计工作,利用像Numpy这样的数值计算工具和Qwt绘图工具。

10

有很多方法可以做到这一点,包括你提到的Python方法。如果你想完全在R里面完成这个任务,而且你的需求不是特别复杂,可以使用gWidgets这个包。它可以让你比较轻松地使用RGtk2、tcltk或qtbase中的一些功能(可以查看r-forge上的qtinterfaces项目)。如果你需要更多功能,可以直接使用这些包。如果你打算和别人分享,建议使用RGtk2;如果不是的话,可以选择qtbase或tcltk。

撰写回答