[R] integer overflow error problem

Martin Maechler maechler at stat.math.ethz.ch
Tue Apr 1 09:35:08 CEST 2003


>>>>> "BDR" == Prof Brian Ripley <ripley at stats.ox.ac.uk>
>>>>>     on Mon, 31 Mar 2003 21:57:12 +0100 (BST) writes:

    BDR> On Tue, 1 Apr 2003, Robin Hankin wrote:
    BDR> [...]

    >> Now _why_ does colon have this behaviour, when it seems that very few
    >> other functions return integers; help(":") gives no clue to the
    >> motivation.  Splus does the same thing (apparently), so there must be
    >> some rationale.  What is it?


    BDR> If you mean integers, it helps to have them to avoid rounding errors.
    BDR> S-PLUS (sic) currently thinks 20 is integer and 20. is double.

Other good rationales for "m:n" integers are
- it's half the size; at least useful if  |n-m| is big.
- when used   for(i in m:n)  {  ... x[i] ... }
  `i' is integer and will be used as such in almost all cases.

    >> Also, it would appear, both "if(2+2==4)" and "(1:10)==4" are
    >> inadvisable, because in both cases, at least one side of the "==" is a
    >> double.  How do I get round this?

    BDR> ?identical
    BDR> ?as.equal
          ^^^  typo, meant
	  all.equal

    BDR> BTW, == does coerce as needed, so 2+2==as.integer(4) is fine.

Martin Maechler <maechler at stat.math.ethz.ch>	http://stat.ethz.ch/~maechler/



More information about the R-help mailing list