[Rd] Inconsistencies in sum() (PR#1408)
ripley@stats.ox.ac.uk
ripley@stats.ox.ac.uk
Fri, 22 Mar 2002 09:02:06 +0100 (MET)
R 1.4.1
sum() tries to keep the result integer, although that is not
currently documented (and I am about to change it).
> x <- as.integer(2^30)
> x
1) inconsistent in warning or not:
> sum(x, x)
[1] NA
> sum(c(x, x))
[1] NA
Warning message:
Integer overflow in sum(.); use sum(as.numeric(.))
2) It's order-dependent:
> sum(0.0, x, x)
[1] 2147483648
> typeof(.Last.value)
[1] "double"
> sum(x, x, 0.0)
[1] NA
> typeof(.Last.value)
[1] "double"
I believe that it should calculate in integers only if *all* the
arguments are integers, that is behave like
> sum(c(x, x, 0.0))
[1] 2147483648
--
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._