aggregate.ts (PR#376)

ripley@stats.ox.ac.uk ripley@stats.ox.ac.uk
Thu, 16 Dec 1999 14:48:31 +0100 (MET)


> From: plummer@iarc.fr
> Date: Thu, 16 Dec 1999 14:15:51 +0100 (MET)
> To: r-devel@stat.math.ethz.ch
> Subject: aggregate.ts (PR#376)
> CC: R-bugs@biostat.ku.dk
> X-Loop: R-bugs@biostat.ku.dk
> 
> I'm having some problems with aggregate.ts, e.g.
> 
> R> x <- ts(1:20)
> R> frequency(x)
> [1] 1
> 
> R> aggregate(x, nfreq=1/3)
> Error in aggregate.ts(x, nfreq = 1/3) : cannot change frequency from 1 to
> 0.333333333333333
> 
> In fact aggregate.ts only accepts a new frequency that is a negative
> power of two in this example. 
> 
> The problem with the current test for compatible frequencies
> 
>     if ((ofrequency%%nfrequency) != 0)
>         stop(paste("cannot change frequency from", ofrequency,
>             "to", nfrequency))
> 
> is that numerical errors may cause it to fail.  I suggest
> 
>      if (abs(ofrequency%%nfrequency) < ts.eps)

It's been like that since January, and is OK on my machine. This is yet
another example in which the Linux run-time libraries are not
taking account that extended precision calculations are probably
inappropriate:
Browse[1]> ofrequency%%nfrequency
[1] 5.551115e-17
is half or one quarter the machine precision (depending on how you define it).
(We fixed 10 or so such examples a few releases ago where Linux was
differing from Solaris and also from Windows.)

I'll put in the test you suggest (with > not < !)  Should we be fixing
%%, that is if  y%%x is less than 5*machine precision times abs(x),
returning zero?  (I see S-PLUS does not.)

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._