This information is currently a dump of this page and is not up to date. The motivation for moving the content to the wiki is that the updating cycle become shorter
See this page for an overview of R GUI projects
R is provided with a command line interface (CLI), which is the preferred user interface for power users because it allows direct control on calculations and it is flexible. However, good knowledge of the language is required. CLI is thus intimidating for beginners. The learning curve is typically longer than with a graphical user interface (GUI), although it is recognized that the effort is profitable and leads to better practice (finer understanding of the analysis; command easily saved and replayed). The user interface remains the biggest difference between R and S-PLUS, since the latter implements a very sophisticated GUI. A fraction of the R users are asking for, and would probably benefit from a R GUI, mainly, occasional users and some teachers. R is open and communicating. Several projects develop or offer the opportunity to develop alternate user interfaces. They are presented here. A Special Interest Group mailing list (R-SIG-GUI) exists also to freely discuss concerned issues. You can subscribe here.
The concept of GUI is general. It just means providing an event-driven user interface managed with the mouse (the most classical graphical interfacing device). Usually, a GUI is based on menus and dialog boxes. Regarding the data analysis, there are different ways to organize the commands and to display both the data and the results. Here is a typology of the different GUIs that have been used so far in data analysis:
this GUI is commonly found in current statistical packages like Minitab, SPSS, Systat, Statistica,... Splus proposes also a MDB...
The major part of the interface is a table constituted of cells. Each cell contains numbers, text or formulas. The computation is done by recalculating the formulas... Some spreadsheet packages allow extensions (addins, plugins,...) to add advanced data analysis methods to the panels of formulas available.
the notebook interface is an extension of the word processor. The document mixes text and images, like in a classical word processor. In addition, paragraphs can contain code that is executable by the calculation engine and some of the images are indeed graphs generated by this code. A typical notebook interface is Mathematica. The notebook interface can also be viewed like a live math scratch book (the metaphor preferred by Mathcad, another notebook-based program). It can also be considered as an extension of the command line interface, where not only text results are displayed under the command, but also graphs, and where rich-formatted text can be included in between.
the web-based interface presents active web pages with forms that are filled and trigger analyses on a server. Its main advantages are the Client/Server architecture, but it can work locally also.
One GUI cannot be said to be better than another, nor a GUI is better than the CLI. The answer depends upon the context, that is, the environment, the analysis and the user. Giving a general data analysis software should adapt to the context, the best user interface is perhaps the most versatile one. It should offer various ways to drive the analyses: CLI, MDB, spreadsheet or notebook, depending on the user’s needs and preferences.
The environment, mainly the platform imposes some habits to the user. For instance, most Unix/Linux users are accustomed to a CLI, while Windows/MacOS users are prone to prefer a GUI with the same look and feel as their preferred operating system. The way the data analysis package is used is also a major criterion. Whether for teaching, for research or for demonstration... Finally, the user skill is key aspect. A beginner prefers a point and click user interface, while the expert likes to get full control of the process through a CLI, and consequently, dislikes rigid and limited GUIs. This latter aspect is controversial. Many teachers prefer to use a CLI, even with their beginner students, because it forces good habits in data analysis (the user must really know what he is doing). On the contrary, a beginner in front of a simple GUI can click everywhere and get results anyway, even if these results are meaningless.
R, as a GNU project, offers the opportunity to develop and test various different GUIs (see the Projects section). This is perhaps a fantastic opportunity to study and experiment the impact of such or such GUI feature on the productivity in data analysis for research, teaching, etc. However, evaluation of GUIs benefits in data analysis software is mostly intuitive and subjective. It depends upon the users. It is also much driven by personal feelings. There is a lack of appropriate metrics and of studies to produce experimental evidences of the efficiency of different GUIs, or of GUI versus CLI. This is a difficult field of investigation because usability is a fuzzy and complex concept that does not just summarize in one figure. We would like to encourage teachers and scientists to experiment with the various R GUIs in development, or to design new ones. We will eventually publish their results here.
A few useful readings in GUI design and evaluation:
From the developer point of view, interaction between R and a Graphical User Interface imposes some constraints, particularly on the way the event loop is handled. Threading & GUI discusses them. Embedding R in Other Applications gives a starting point to link or dynamically load R as a stand-alone library. It is a complement to the Writing R Extensions manual for writing new front ends for R.