[R] Building GUI for custom R application

Barry Rowlingson b.rowlingson at lancaster.ac.uk
Tue Apr 14 12:54:49 CEST 2009


On Tue, Apr 14, 2009 at 9:23 AM, Harsh <singhalblr at gmail.com> wrote:
> HI R users,
> I would appreciate information/examples/suggestions on building GUIs
> for R applications.
> I am currently working on a project that would require the following
> functionalities :
>
> 1) Display a  window to the user. Provide a function to scan local
> drive and choose dataset file.
> 2) Display the column names for the user to choose the dependent
> variable and the independent variables.
> 3) Fit regression and display statistics.

> Item 2 provides an example of creating a regression application with
> slider controls for a parameter in loess function used in the example
> application in that paper.
> For documentation on RGtk the author recommends reading the Gtk
> tutorial and documentation. I seem to have difficulty in making sense
> of the Gtk documentation since most of it is in C and documentation is
> available for use of Gtk with Perl and Python. I am not a
> C/Perl/Python programmer.

 You should say "I am not _yet_ a C/Perl/Python programmer". Don't
limit yourself :)

> Moreover, I am creating a Windows Application and is using RGtk2 the
> only way to create a GUI for an R application?
> Or should I use the the VB approach and create the GUI separately and
> call R scripts where required to do the back-end computation?

 If you are to admit the possibility of becoming a Python programmer
(strongly recommended) I'd say you could do it with Python, Rpy, and
the Qt library. The basic example you've outlined (choose file, select
X and Y values, plot, display stats) would take about twenty minutes.

 In fact, I've done half the work already, in adding almost just such
functionality to Quantum GIS. See here:

 http://www.maths.lancs.ac.uk/~rowlings/Software/Spqr/

 where the second screenshot shows variable selection and diagnostic
plots of an lm from data in the GIS.

 Distributing such an application might be tricky since it requires R,
Rpy, PyQt4 to be installed or available, but it can be possible to
build Python code into Windows .exe files with some effort.

 Don't get the fear of learning Python - it's easy, and working with R
in Python is easy too. Guess what this does:

 from rpy import r
 x = r.rnorm(1000)
 r.hist(x)

The tricky part of your problem is probably going to be understanding
whatever GUI system you end up using - they tend to all have different
ideas of callbacks, events, signals and so on. In the past I've played
with Tcl/Tk a bit and Gtk a teeny bit, but found Qt really easy and
cleanly designed. Once you go beyond the simple examples you
appreciate this.

 Okay, obligatory 'use a better language and gui system' rant over :)

 If you want it done with as little extras as possible, then it can
probably be done purely using R's tcltk package. I've just found loads
of examples here:

http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/

Barry




More information about the R-help mailing list