From ggrothendieck at gmail.com  Mon Jan  1 07:28:46 2007
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Mon, 1 Jan 2007 01:28:46 -0500
Subject: [Rd] Wish list
Message-ID: <971536df0612312228i4a4bb0b2h6c52c081213c296@mail.gmail.com>

This is my 2007 New Year wishlist for R features:

1. Matrix Multiplication
   Enhance matrix multiplication to work with multidimensional
   arrays such that the last dimension of the first multiplicand
   must equal the first dimension of the second. See:
   https://www.stat.math.ethz.ch/pipermail/r-devel/2006-July/038497.html

2. Grid
   - logical-valued function as first arg of grid.edit
   - transparency under Windows (not sure if this involves grid
     or just the Windows graphics device)
   - shading patterns
   - more interactivity features
   - safe way to get name of a grid object, e.g.
        names.vpPath <- names.viewport <- function(x) x$name
   - safe way to get children of a grid object
        getChildren.viewport <- function(x) x$children
     and the order; see:
     https://www.stat.math.ethz.ch/pipermail/r-devel/2005-June/033532.html
   - facility for using a name, viewport or vpPath interchangably
     so that, for example, any of them can be specified in
     in print.trellis(..., draw.in=...) or draw.key(..., vp=...)

3. Lattice.
   - make panel functions generic
   - allow print.trellis args to be specified in xyplot, etc.
   - shading patterns (once grid implements them)
   - safe way to access lattice:::getStatus and lattice:::updateList
   - allow name, viewport or vpPath to be specified in draw.in=
     arg of print.trellis (and vp= arg of draw.key?)
   - document parameters, i.e. those output from trellis.par.get()
   - support for groups in histogram

4. Higher level Windows clipboard functions.
   Since R 2.3.0 R can handle non-text objects
on the Windows clipboard.  We now need some higher
level functionality that makes use of that
to read in non-text from the clipboard.  For
example, one can select a table on an HTML
page in Internet Explorer and invoke copy
and it will copy it to the clipboard in a
non-text format.  If one invokes paste in
Excel, Excel will automatically detect the
non-text format and copy it in the expected
way so that it appears in Excel one table
cell per Excel cell.

However, R does not currently
support this level of integration. (Current
workaround is to paste it into Excel and then copy
it back out of Excel.  Excel will insert tabs between
text that is so copied.)

6. Allow attributes to be associated with an environment
variable without having them associated with the environment
itself.  This would allow more powerful inheritance in
the case of subclasses of environment.
See:
  https://stat.ethz.ch/pipermail/r-devel/2006-July/038377.html
and subsequent postings in that thread.  Any package
that uses the list(env = whatever) idiom to define
objects could make use of this.

7. documentation standards for packages
   - NEWS/ChangeLog (also should be accessible from CRAN page for package
     and should be included in built version of package)
   - package?mypackage

8. Need to be able to distinguish between ordinary missing values
and structurally missing ones.

9. bidirectional pipes in Windows

10. Create a log updated at a regular frequency (daily or real time)
that tracks all changes on CRAN, e.g.

	Date(GMT)           Package Version Action
	2006-09-20 21:22:01 mypkg   1.0.1   new
	2006-09-20 22:00:23 mypkg2  0.2.1   updated

11. make integrate generic.  Ryacas could use that.

12. Remove all R CMD dependencies on the find.exe command.  find is a built
    in command in Windows and having find.exe on my path causes
    problems with other programs.

13. Make upper/lower case of simplify/SIMPLIFY consistent on all
    apply commands and add a simplify= arg to by.

14. better reporting of location of errors and warnings in R CMD check.

15. tcl tile library (needs tcl 8.5 or to be compiled in with 8.4)

16. extend aggregate to allow vector valued functions:
    aggregate(CO2[4:5], CO2[1:2], function(x) c(mean = mean(x), sd = sd(x)))
    [summaryBy in doBy package and cast in reshape package can already
    do similar things but this seems sufficiently fundamental that it
    ought to be in the base of R]

17. All OSes should support input= arg of system.

My previous New Year wishlists are here:

https://www.stat.math.ethz.ch/pipermail/r-devel/2006-January/035949.html
https://www.stat.math.ethz.ch/pipermail/r-help/2005-January/061984.html
https://www.stat.math.ethz.ch/pipermail/r-devel/2004-January/028465.html



[Rd] Wish list
Gabor Grothendieck