# [R] More on ties with rank()

Thomas Lumley tlumley at u.washington.edu
Tue May 7 21:46:50 CEST 2002

```On Tue, 7 May 2002, arcriswell wrote:

> I am grateful to Prof. Ripley for his explanation. Indeed, rounding explains
> it all.
>
> I take the difference between two vectors and call it "z"
>
> method.a <- c(6.3, 6.3, 3.5, 5.1, 5.5, 7.7, 6.3, 2.8, 3.4, 5.7, 5.6, 6.2,
> 6.6,
>                        7.7, 7.4, 5.6, 6.3, 8.4, 5.6, 4.8, 4.3, 4.2, 3.3,
> 3.8, 5.7, 4.1)
>
> method.b <- c(5.2, 6.6, 2.3, 4.4, 4.1, 6.4, 5.4, 2.3, 3.2, 5.2, 4.9, 6.1,
> 6.3,
>                        7.4, 7.4, 4.9, 5.4, 8.4, 5.1, 4.4, 4.3, 4.1, 2.2,
> 4.0, 5.8, 4.0)
>
> z <- sort(abs(method.a - method.b))
>
<snip>
>
> But it strikes me as odd, that such an innocent calculation could lead to
> such a significant miscalculation based on rounding error.
>

Not odd at all. Any result that depends on floating point equality is
going to be sensitive.

Floating point numbers are reliably equal only when the same result is
computed by the same arithmetical steps (and sometimes not even then).

If you know your data are really discrete then you should round them
before ranking, if they aren't really discrete you shouldn't expect tied
values to behave consistently

-thomas

Thomas Lumley			Asst. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help 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-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```