[Rd] Top 10 R Features

Gabor Grothendieck ggrothendieck at myway.com
Sun Jan 11 17:33:02 MET 2004

It seems to be the time of the year for top 10 lists both
looking backwards
(e.g. films: http://www.msnbc.msn.com/id/3660638/ )
and forwards
(e.g. trends: http://www.wfs.org/forecasts.htm )

In this light I think we need a list of the top 10 features
that users think R needs.    Some of these are concrete while
others are vague.  By R, I am referring to the entire R system
including packages, not just the core.

Anyone have other ideas on this?

By the way, I think R is a really powerful system with an 
amazing community constantly enhancing the core and contributing 
new packages so I hope this will be viewed constructively and not 
as criticism.

The following are in no particular order:

1. GUI.  See http://www.sciviews.org/_rgui/  
Its hard to specify this one closely but the above link discusses
it and various approaches.

2. Timezone-free dates in the core.  POSIXt is great for file
stamps and certain esoteric applications (e.g. world currency
arbitrage) but for the most part it needlessly complicates 
most statistical analyses and is error prone so a second
system is needed for common use. 

3. A guide to the source.  One of the most powerful aspects of
R is that you get the whole source.  It would be nice to have 
a tour of this.

4. A really good reference card.  Something along the lines of
the Visibone javascript reference card (www.visibone.com) which
is so packed full of much information you can't believe they
got in into a few pages or the Werbach html barebones guide
(www.werbach.com/barebones/).  I am aware of a few reference
cards ( http://www.psych.upenn.edu/%7Ebaron/refcard.pdf
http://gifi.stat.ucla.edu/R/doc/statsRus.html )
which are all good but I think even more would be possible.

5. Boundary conditions.  Anyone who has used APL for a period
of time and then come to R will know what I mean by this one.
In APL you can write code and find that it works on boundary
conditions (null objects, etc.) in the correct way an amazing
percentage of the time.  This is not the case with R.  Its
hard for me to pinpoint what's wrong here but its a feeling from
having used the two systems.

6. SAS style output-it-all-at-once commands.  Hmisc and Design
already have some of this but more is needed.  These commands
could be in a separate package or in the core.

7. More use of objection orientation.  R has the capability to
support this but at the next level up its not used as much as
it could be.  Could character patterns (file name globbing, 
fixed character sequences with no regular expression 
subcommands, basic POSIX regular expressions, extended 
POSIX regular expressions, Perl regular expressions) be 
generalized into classes, for example?

8. Generalization, consolidation and regulariation of commands.  
With a large number of contributors there is opportunity for 
generalization and consolidation of commands.  Could the various 
apply commands be generalized and consolidated, for example? This
point is probably related to #7.

9. Harness the community.  There is a large community using R now.
The mailing lists provide some interaction and the package system
provides a way for them to contribute code; but a wiki or some
similar method of harnessing comments and experiences would be
nice.    A wiki does exist at
but its unused so something more than just the technical provision
of the software seems necessary.  The mailing list even discussed 
the possibility of integrating the help system with a wiki.  Or
maybe there is some other solution.

10.  Some facilities to make it easy to write single file simple 
self contained filters in R in the same way you can with perl 
and awk.

More information about the R-devel mailing list