[Rd] sort.int(S3object) strips class but not the is.object flag

William Dunlap wdunlap at tibco.com
Mon Apr 11 19:10:07 CEST 2011


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
  > 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 



More information about the R-devel mailing list