Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to build an application based on R?

I'm looking for suggestions on how to go about building an application that uses R for analytics, table generation, and plotting. What I have in mind is an application that:

  • displays various data tables in different tabs, somewhat like in Excel, and the columns should be sortable by clicking.
  • takes user input parameters in some dialog windows.
  • displays plots dynamically (i.e. user-input-dependent) either in a tab or in a new pop-up window/frame

Note that I am not talking about a general-purpose fron-end/GUI for exploring data with R (like say Rattle), but a specific application. Some questions I'd like to see addressed are:

  • Is an entirely R-based approach even possible ( on Windows ) ? The following passage from the Rattle article in R-Journal intrigues me:

It is interesting to note that the first implementation of Rattle actually used Python for implementing the callbacks and R for the statistics, using rpy. The release of RGtk2 allowed the interface el- ements of Rattle to be written directly in R so that Rattle is a fully R-based application

  • If it's better to use another language for the GUI part, which language is best suited for this? I'm looking for a language where it's relatively "painless" to build the GUI, and that also integrates very well with R. From this StackOverflow question How should I do rapid GUI development for R and Octave methods (possibly with Python)? I see that Python + PyQt4 + QtDesigner + RPy2 seems to be the best combo. Is that the consensus ?

  • Anyone have pointers to specific (open source) applications of the type I describe, as examples that I can learn from?

like image 253
Prasad Chalasani Avatar asked Jan 07 '11 18:01

Prasad Chalasani


Video Answer


2 Answers

There are lots of ways to do this, including the python approach you mention. If you want to do it solely within R and if your aims are modest enough, the gWidgets package can be used. This exposes some of the features of either RGtk2, tcltk or qtbase (see the qtinterfaces project on r-forge) in a manner that is about as painless as can be. If you want more, look at using those packages directly. I'd recommend RGtk2 if you are going to share with others and if not, qtbase or tcltk.

like image 168
jverzani Avatar answered Sep 18 '22 16:09

jverzani


Python + Qt4 + RPy = Much Win.

For example, see what Carson Farmer has done with Qgis and the ManageR plugin - its a full R interface to geographic data in the Qgis mapping package.

Depending on how much statistical functionality you need you might even get away without needing it at all, doing all the stats in Python, leveraging such goodies as the Numpy numeric package and the Qwt plotting canvas.

like image 39
Spacedman Avatar answered Sep 19 '22 16:09

Spacedman