Skip to content

Building GUI for custom R application

9 messages · Harsh, Barry Rowlingson, Gabor Grothendieck +5 more

#
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.

While researching the possibility of creating a GUI which would allow
for the above mentioned computations, I came across:

1) rpanel: Simple Interactive Controls for R Functions Using the tcltk Package
Found In: Journal of Statistical Software, January 2007, Volume 17, Issue 9.


2) Putting RGtk to Work, James Robison-Cox
Found In:Proceedings of the 3rd International Workshop on Distributed
Statistical Computing (DSC 2003),March 20?22, Vienna, Austria ISSN
1609-395X
http://www.ci.tuwien.ac.at/Conferences/DSC-2003/

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.

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?

Another approach (to make the visualization more rich and dynamic) is
to use Adobe FLEX front end and communicate with R using the RSOAP
library. There is very sparse documentation relevant to using RSOAP. I
have not been able to find examples or tutorials using RSOAP. Any
information in this regard will be highly appreciated.

The Biocep project provides 'R for cloud computing' but unfortunately
I have not been able to extract relevant 'juice' from their webpage.
What i did get is their R workbench, but that has not answered my
above mentioned queries.

Regards,

Harsh Singhal
#
It hasn't been updated in years but this page lists some
possibilities for R GUI's:
http://www.sciviews.org/_rgui/
On Tue, Apr 14, 2009 at 4:23 AM, Harsh <singhalblr at gmail.com> wrote:
#
On Tue, Apr 14, 2009 at 9:23 AM, Harsh <singhalblr at gmail.com> wrote:
You should say "I am not _yet_ a C/Perl/Python programmer". Don't
limit yourself :)
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
#
On Tue, Apr 14, 2009 at 6:54 AM, Barry Rowlingson
<b.rowlingson at lancaster.ac.uk> wrote:
Since you are using Windows (based on the fact you are considering
VB) note that rpy2 does not work with the recent versions of
python (as of a few months ago when I checked).
#
Duncan Murdoch and Brian Ripley (I believe) have provided some limited but
serviceable native Windows GUI functionality within R for Windows. See
?winMenuAdd, ?choose.files , ?select.list, ?getGraphicsEvent,?winProgressBar
for examples and further links. Everything that you mention can be rather
simply done using this functionality (I've done it).

As others have said, much more extensive and powerful GUI functionality is
available through tcltk and associated packages like gWidgets,TkWidgets, and
others (including much stuff on Bioconductor). But beware! -- writing GUI's
that provide complex functionality is difficult. Computer scientists, web
designers, etc. have whole curricula devoted to this.

Cheers,
Bert

Bert Gunter
Genentech Nonclinical Biostatistics
650-467-7374

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Gabor Grothendieck
Sent: Tuesday, April 14, 2009 4:17 AM
To: Barry Rowlingson
Cc: r-help at r-project.org; Harsh
Subject: Re: [R] Building GUI for custom R application

On Tue, Apr 14, 2009 at 6:54 AM, Barry Rowlingson
<b.rowlingson at lancaster.ac.uk> wrote:
Since you are using Windows (based on the fact you are considering
VB) note that rpy2 does not work with the recent versions of
python (as of a few months ago when I checked).

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
#
If the desired end-state is a regression model and the appropriate
diagnostics, the Rcmdr package contains the necessary tools.  Rcmdr is
available for many Linux distribuitons as well as for Windows, and it
is able to do much more than import-and-regress.  I think the package
was built from Tcl/Tk.  If the goals, however, are learning to build a
GUI and incorporating custom features within it, then the other posts
are pointing in the appropriate direction.

Mike
On Apr 14, 10:40?am, Bert Gunter <gunter.ber... at gene.com> wrote:
#
On Tue, Apr 14, 2009 at 9:46 PM, mah <harwood262 at gmail.com> wrote:
Rcmdr provides a handy plug-in system, and it's fairly easy to write
your own plug-in in tcl/tk.
There was also a recent discussion [1] on the subject of creating GUIs for R.
Liviu

[1] http://www.nabble.com/Creating-GUIs-for-R-td19862627.html
#
Hello Harsh,
I found useful the fgui package ( http://www.people.fas.harvard.edu/~tjhoffm/fgui.html ). 
Regards,
Gabriele Franzini 
ICT Applications Manager 
Nerviano Medical Sciences SRL 
Nerviano Italy 




-----Original Message-----
From: Barry Rowlingson [mailto:b.rowlingson at lancaster.ac.uk] 
Sent: 14 April 2009 12:55
To: Harsh
Cc: r-help at r-project.org
Subject: Re: [R] Building GUI for custom R application
On Tue, Apr 14, 2009 at 9:23 AM, Harsh <singhalblr at gmail.com> wrote:
Barry