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.

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

All of the above is consistent with the documentation for is.matrix():

| is.matrix| returns |TRUE| if |x| is a matrix and has a |dim <dim.html>| attribute of length 2) and |FALSE| otherwise

[There seems to be a typo in this sentence from ?is.matrix : an unmatched ")"]

This is also useful behavior -- when programming it is often useful to know whether something is a matrix or not because that can affect computations performed with the object.

For the more informal definition of "matrix" that it looks like want, you could use
is.matrix(x) && all(dim(x)>1)
(or maybe all(dim(x) != 1) depending on how you want to treat matrices that have a dimension with zero extent)

-- Tony Plate

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

Reply via email to