> -----Original Message----- > From: r-devel-boun...@r-project.org > [mailto:r-devel-boun...@r-project.org] On Behalf Of William Dunlap > Sent: Monday, April 11, 2011 10:10 AM > To: R-devel@r-project.org > Subject: [Rd] sort.int(S3object) strips class but not the > is.object flag > > If x has an S3 class then sort.int(x) returns a value > without an S3 class but which has the is.object flag set, > which, I think, causes identical() give a false/misleading > report: > > > x <- structure(1:3, class="unrecognizedClass") > > y <- sort.int(x) > > t <- 1:3 > > identical(y, t) # expect TRUE > [1] FALSE
The misleading is.object flag can also affect the time it takes to sort objects (it looks like xtfrm is only called when is.object reports TRUE): > system.time(for(i in 1:1e5) order(y)) # is.object(y) is TRUE user system elapsed 12.07 0.00 11.28 > system.time(for(i in 1:1e5) order(t)) # is.object(t) is FALSE user system elapsed 1.98 0.01 2.01 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > > identical(as.vector(y), as.vector(t)) # expect TRUE > [1] FALSE > > dput(y) > 1:3 > > dput(t) > 1:3 > > class(y) > [1] "integer" > > class(t) > [1] "integer" > > is.object(y) > [1] TRUE > > is.object(t) > [1] FALSE > > The files made by > save(t, file="t.Rdata", compress=FALSE) > save(y, file="y.Rdata", compress=FALSE) > differ in 2 places, where the first is presumably > the name of the object: > % cmp -l y.Rdata t.Rdata > 36 171 164 > 39 1 0 > (The problem persists after a save/load cycle.) > > This is on R 2.12.2 on Linux. Sorry, I don't have 2.13.0 > yet installed. > > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel