Matthias.Kohl@uni-bayreuth.de
2004-Dec-30 11:09 UTC
[Rd] is.vector(...) <-> is(..., "vector")
Hello, Is it intended that is.vector(...) and is(..., "vector") do not always give identical results? is.vector() works as documented ('is.vector' returns 'FALSE' if 'x' has any attributes except names.) Thus, A <- array(1:2, 1:2) M <- diag(2) is.vector(M) # FALSE, as documented # and is.vector(A) # FALSE, as documented # however is(M, "vector") # TRUE is(A, "vector") # TRUE # which is also correct, since extends("matrix", "vector") extends("array", "vector") I'm working with R Version 2.0.1 Patched (2004-12-09) on Windows 2000. Thanks, for any comments! Matthias
On Thu, 30 Dec 2004 Matthias.Kohl@uni-bayreuth.de wrote:> Is it intended that is.vector(...) and is(..., "vector") > do not always give identical results?Yes. What makes you think they are anything to so with each other? The S4 class "vector" is quite distinct from the usage in base R.> is.vector() works as documented ('is.vector' returns > 'FALSE' if 'x' has any attributes except names.) > Thus, > > A <- array(1:2, 1:2) > M <- diag(2) > > is.vector(M) # FALSE, as documented > # and > is.vector(A) # FALSE, as documented > > # however > is(M, "vector") # TRUE > is(A, "vector") # TRUE > > # which is also correct, since > extends("matrix", "vector") > extends("array", "vector") > > I'm working with R Version 2.0.1 Patched (2004-12-09) > on Windows 2000.-- Brian D. Ripley, ripley@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
On Thu, 30 Dec 2004 Matthias.Kohl@uni-bayreuth.de wrote:> Hello, > > Is it intended that is.vector(...) and is(..., "vector") > do not always give identical results?Yes. They both work as documented, as you note below. People have often pointed out that is.vector is a slightly misleading name, and it might have been better if that function had been called something like is.bare.vector() back in the Disco Age when it was created. But it wasn't. -thomas> is.vector() works as documented ('is.vector' returns > 'FALSE' if 'x' has any attributes except names.) > Thus, > > A <- array(1:2, 1:2) > M <- diag(2) > > is.vector(M) # FALSE, as documented > # and > is.vector(A) # FALSE, as documented > > # however > is(M, "vector") # TRUE > is(A, "vector") # TRUE > > # which is also correct, since > extends("matrix", "vector") > extends("array", "vector") > > I'm working with R Version 2.0.1 Patched (2004-12-09) > on Windows 2000. > > Thanks, for any comments! > Matthias > > ______________________________________________ > R-devel@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >Thomas Lumley Assoc. Professor, Biostatistics tlumley@u.washington.edu University of Washington, Seattle