Yes, I noticed that but rank is not generic. An xtfrm.zoo method has been added to zoo on R-Forge but rank still fails:
> R.version.string [1] "R version 2.8.0 Patched (2008-10-21 r46766)" > packageDescription("zoo")$Version [1] "1.5-3" > library(zoo) > # next line adds xtfrm zoo method > xtfrm.zoo <- coredata > z <- zoo(1:4) > order(z) # ok [1] 1 2 3 4 > qqnorm(z) # ok > rank(z) # error Error in if (xi == xj) 0L else if (xi > xj) 1L else -1L : argument is of length zero >>>> >>> (If the MIME type is wrong, then that will happen.) >>> >>> Anyways, the root cause seems to be the new function .gt() which is >>> related to >>> >>> o New generic function xtfrm() as an auxiliary helper for >>> sort(), order() and rank(). This should return a numeric >>> vector that sorts in the same way as its input. The default >>> method supports any class with ==, > and is.na() methods but >>> specific methods can be much faster. >>> >>> As a side-effect, rank() will now work better on classed >>> objects, although possibly rather slowly. >>> >>> Here, "better" may be in the eyes of the beholder, for >>> >>> >>>> dax[3]==dax[6] >>>> >>> Data: >>> logical(0) >>> >>> Index: >>> integer(0) >>> >>> and accordingly >>> >>> >>>> rank(dax) >>>> >>> Error in if (xi == xj) 0L else if (xi > xj) 1L else -1L : >>> argument is of length zero >>> >>> which is the error that you are seeing. >>> >>> What to do about it is a bit dubious. Obviously, we don't want to "fix" >>> .gt() so that it automatically unclasses objects, and I assume that zoo >>> has its reasons for not wanting to compare series with different >>> indices. So I suppose that either the user must unclass, or zoo define >>> rank.zoo. >>> >> >> Actually qqnorm does not use rank but it does use order and with the >> xtfrm.zoo method I mentioned qqnorm works with zoo; however, I think >> rank needs to be fixed in R to make use of xtfrm as well since I would have >> expected that supplying an xtfrm method for zoo would be sufficient to >> get both order and rank to work without giving errors. Also note that rank >> is not generic. >> > Notice that xtfrm.default() uses rank().... > > -- > O__ ---- Peter Dalgaard Ă˜ster Farimagsgade 5, Entr.B > c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K > (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 > ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 > > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel