[Rd] is.matrix

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Tue Nov 11 19:31:17 CET 2008


Daniel Høyer Iversen wrote:
> a=c(1,1,2);
> is.matrix(a) gives FALSE
> is.matrix(t(a)) gives TRUE
> is.matrix(t(t(a))) gives TRUE
> 
> Is this correct? Shouldn't all give FALSE?
> I think is.matrix should give FALSE when dimension is 1*n or n*1.

No this is correct. is.matrix() returns TRUE if and only if the argument
has a two-dimensional 'dim' attribute, and

 > dim(a)
NULL
> dim(t(a))
[1] 1 3
> dim(t(t(a)))
[1] 3 1

(And is.array() depends on having a 'dim' attribute of positive length, so

> dim(a) <- 3
> is.matrix(a)
[1] FALSE
> is.array(a)
[1] TRUE

)


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907



More information about the R-devel mailing list