[Rd] Question about colnames behavior

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Oct 3 10:44:47 CEST 2005

On Mon, 3 Oct 2005, Martin Maechler wrote:

>>>>>> "Erich" == Erich Neuwirth <erich.neuwirth at univie.ac.at>
>>>>>>     on Sun, 02 Oct 2005 09:39:36 +0200 writes:
>    Erich> The following code
>    Erich> zzz<-1:10
>    Erich> dim(zzz)<-10
>    Erich> rownames(zzz)
>    Erich> colnames(zzz)
>    Erich> yields NULL for the rownames and colnames calls.
>    Erich> Let us set rownames
>    Erich> rownames(zzz)<-1:10
>    Erich> Now rownames(zzz) returns the expected result, but colnames(zzz)
>    Erich> produces an error:
>    Erich> Error in dn[[2]] : subscript out of bounds
>    Erich> So given a onedimensional structure the return behavior of colnames
>    Erich> is different depending on the fact if rownames are set or not.
>    Erich> Should the behavior of colnames be changed to make the result
>    Erich> independent from this fact?
> yes, thank you, Erich.
> It should give an error also in the 1st  case which is
> BTW identical to
>    zzz <- array(1:10)

Not according to my reading of the help, which says

      The extractor functions try to do something sensible for any
      matrix-like object 'x'.  If the object has 'dimnames' the first
      component is used as the row names, and the second component (if
      any) is used for the col names.

and reading on, I think it should give NULL in both cases.  You could 
argue that a 1D array is not `matrix-like', but that seems a narrow 
interpretation (especially as rownames does work for such arrays).

> Not for R 2.2.0 though, but rather 2.2.1.


Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-devel mailing list