From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Wed, 22 Oct 2008 15:09:25 -0400

R-devel_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed 22 Oct 2008 - 19:11:12 GMT

Date: Wed, 22 Oct 2008 15:09:25 -0400

fails because z[1] and z[2] are at different time points so

is logical(0) because when zoo compares objects it aligns them first.

On Wed, Oct 22, 2008 at 2:19 PM, Gabor Grothendieck
<ggrothendieck_at_gmail.com> wrote:

> 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
**>> ~~~~~~~~~~ - (p.dalgaard_at_biostat.ku.dk) FAX: (+45) 35327907
**>>
**>>
**>>
**>
*

R-devel_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Wed 22 Oct 2008 - 19:11:12 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Wed 22 Oct 2008 - 21:30:27 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel.
Please read the posting
guide before posting to the list.
*