From P.Dalgaard at biostat.ku.dk  Wed Oct 22 19:26:46 2008
From: P.Dalgaard at biostat.ku.dk (Peter Dalgaard)
Date: Wed, 22 Oct 2008 19:26:46 +0200
Subject: [Rd] R 2.8.0 qqnorm produces error with object of class zoo?
In-Reply-To: <971536df0810220933l6be9989aie61bd69c7978bd17@mail.gmail.com>
References: <B89F0CE41D45644A97CCC93DF548C1C314C4EC88@GBHENXMB02.corp.amvescap.net>	
	<B89F0CE41D45644A97CCC93DF548C1C314C4ECFB@GBHENXMB02.corp.amvescap.net>	
	<48FF215E.80807@biostat.ku.dk>
	<971536df0810220933l6be9989aie61bd69c7978bd17@mail.gmail.com>
Message-ID: <48FF6256.8080702@biostat.ku.dk>

Gabor Grothendieck wrote:
> On Wed, Oct 22, 2008 at 8:49 AM, Peter Dalgaard
> <P.Dalgaard at biostat.ku.dk> wrote:
>   
>> Pfaff, Bernhard Dr. wrote:
>>     
>>> It seems, that in my previous emails the attached output files got deleted, hence these are now copied below:
>>>
>>>
>>>       
>> (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



[Rd] R 2.8.0 qqnorm produces error with object of class zoo?
Peter Dalgaard