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. Secondly, it's easy to drop() the three-dimensional and two-dimensional objects, but drop() does nothing to the one-dimensional array. Instead, it takes an unintuitive combination of methods to convert a single-dimensional to a vector, while retaining its names. Or I may well be missing something obvious.

Best regards,

Arni



On Wed, 8 Sep 2010, Simon Urbanek wrote:

wrong address - did you mean R-devel?
Simon



On Sep 6, 2010, at 8:35 AM, Arni Magnusson wrote:

Bug or not, I was surprised by this behavior:

 x <- tapply(chickwts$weight, chickwts$feed, median)
 x  # array ... I'd like to convert to vector with named elements
 drop(x)             # what, still an array?
 drop(as.matrix(x))  # this works
 drop(t(x))          # this works

I was expecting drop(x) to return a vector, and I suspect many R users would too. The title in help(drop), "Drop Redundant Extent Information", suggests that such a simple array would be converted to a vector.

Reading through the help page, I note that this is perhaps not a clear bug, but somewhat unclear behavior.

The most compact way to break the vector out of its eggshell seems to be

 t(x)[,]

but drop(x) would be much easier to read and write. There's nothing particularly matrix about x, so it's not obvious that the conversion should involve as.matrix(x).

Thanks,

Arni


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

Reply via email to