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
~~~~~~~~~~ - ([EMAIL PROTECTED])              FAX: (+45) 35327907

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

Reply via email to