On 9/9/2010 10:54 AM, William Dunlap wrote:
-----Original Message-----
From: r-devel-boun...@r-project.org
[mailto:r-devel-boun...@r-project.org] On Behalf Of Arni Magnusson
Sent: Wednesday, September 08, 2010 11:55 AM
To: r-devel@r-project.org
Cc: Simon Urbanek
Subject: [Rd] Drop single-dimensional array

Hi Simon, thank you for the concise reply.

Do you mean the reported behavior of drop() is not a bug?

It looks like a borderline bug to me (see below), but I'm not
the judge of
that. If this is the intended behavior and serves an actual
purpose, then
that could be explicitly documented in a \note{} on the help page.

Such a note would slightly reduce the surprise of users
running into this
behavior.

This is related to the oddity that one-dimensional arrays are:

    array(month.abb, dim=c(1,1,12))  # array
    array(month.abb, dim=c(1,12))    # matrix
    array(month.abb, dim=12)         # array

Firstly, one would expect the pattern to be
array-matrix-vector.
I would expect the array() constructor function to return
something of class array.  (I guess matrix is acceptable
because it inherits from array).

One dimensional arrays and vectors act very similarly
when used in R code.  E.g., names(array1d) gives you
the same thing as dimnames(array1d)[[1]].  Accessing
them from C code probably shows more differences.
Are there features beyond drop's behavior that are
causing you to be concerned about differences between
the 2 types?

drop(x) and x[..., drop=TRUE] have always bugged me
because you couldn't control which dimensions got
dropped.  E.g., if you have a n by 2 by 3 array
and want to get the 3rd n by 2 slice of it as a matrix
you can do
    array[,,3,drop=TRUE]
except when n==1.  It would be nice to be able to say
"drop the 3rd dimension, throwing an error if that
dimension is not 1".
That always bugged me too.  The 'abind' package has an 'adrop()' function with 
this behavior, and I was just working on an enhancement of it that would make 
it able to convert 1-d arrays to named vectors when this thread started.

-- Tony Plate

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to