J.C.Rougier@durham.ac.uk
2001-Aug-14 08:09 UTC
[Rd] Inconsistent behaviour of is.vector? (PR#1052)
Hi everyone, I have noticed that is.vector returns FALSE if I attach attributes:> x <- c(a = 1, b = 2) > attributes(x)$names [1] "a" "b"> is.vector(x)[1] TRUE> attr(x, "fred") <- "happy" > attributes(x)$names [1] "a" "b" $fred [1] "happy"> is.vector(x)[1] FALSE This seems inconsistent to me, as "names" is itself an attribute yet this does negate is.vector. As the original x is clearly a vector, albeit one with names, wouldn't it be consistent to allow any attributes? This appears to be the case for is.matrix ...> x <- matrix(1:4, 2, 2) > is.matrix(x)[1] TRUE> attributes(x)$dim [1] 2 2> attr(x, "fred") <- "happy" > x[,1] [,2] [1,] 1 3 [2,] 2 4 attr(,"fred") [1] "happy"> is.matrix(x)[1] TRUE Cheers, Jonathan. --please do not edit the information below-- Version: platform = i686-pc-linux-gnu arch = i686 os = linux-gnu system = i686, linux-gnu status = Patched major = 1 minor = 3.0 year = 2001 month = 06 day = 27 language = R Search Path: .GlobalEnv, Autoloads, package:base -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
ripley@stats.ox.ac.uk
2001-Aug-14 08:43 UTC
[Rd] Inconsistent behaviour of is.vector? (PR#1052)
This seems intentional. as.vector(x) changes x, and is.vector should be a test of no change. It is in S:>From S-PLUS 3.4:is.vector returns TRUE if x is a simple object of the mode specified, and FALSE otherwise. If the mode is "any", any simple object will match, that is, an object with no attributes. Note that a list is typically a vector in this sense. Note the `simple' in there. R appears to allow names as attributes but nothing else, but does not document this (except in the source code). Anyone want to explain why R is incompatible with S? And why as.vector and is.vector are inconsistent? (Note that the isas tests do not pick this up.) This is a documentation bug, at least. On Tue, 14 Aug 2001 J.C.Rougier@durham.ac.uk wrote:> Hi everyone, > > I have noticed that is.vector returns FALSE if I attach > attributes: > > > x <- c(a = 1, b = 2) > > attributes(x) > $names > [1] "a" "b" > > > is.vector(x) > [1] TRUE > > attr(x, "fred") <- "happy" > > attributes(x) > $names > [1] "a" "b" > > $fred > [1] "happy" > > > is.vector(x) > [1] FALSE > > This seems inconsistent to me, as "names" is itself an attribute > yet this does negate is.vector. As the original x is clearly a > vector, albeit one with names, wouldn't it be consistent to allow > any attributes?Well, dim is an attribute, so you want an array to be a vector?> This appears to be the case for is.matrix ... > > > x <- matrix(1:4, 2, 2) > > is.matrix(x) > [1] TRUE > > attributes(x) > $dim > [1] 2 2 > > attr(x, "fred") <- "happy" > > x > [,1] [,2] > [1,] 1 3 > [2,] 2 4 > attr(,"fred") > [1] "happy" > > is.matrix(x) > [1] TRUE > > Cheers, Jonathan. > > --please do not edit the information below-- > > Version: > platform = i686-pc-linux-gnu > arch = i686 > os = linux-gnu > system = i686, linux-gnu > status = Patched > major = 1 > minor = 3.0 > year = 2001 > month = 06 > day = 27 > language = R > > Search Path: > .GlobalEnv, Autoloads, package:base > > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- > r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html > Send "info", "help", or "[un]subscribe" > (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch > _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._ >-- 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 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._