# [R] understanding all.equal() output: "Mean relative difference"

Duncan Murdoch murdoch.duncan at gmail.com
Thu Nov 24 14:20:45 CET 2011

```On 11-11-24 7:44 AM, Liviu Andronic wrote:
> Dear all
> How should one parse all.equal() output? I'm specifically referring to
> the 'mean relative difference' messages. For example,
>> all.equal(pi, 355/113)
> [1] "Mean relative difference: 8.491368e-08"
>
> But I'm not sure how to understand these messages. When they're close
> to 0 (or 1xe-16), then it's intuitive. But when they're big,
>> all.equal(1, 4)
> [1] "Mean relative difference: 3"
>> all.equal(2, 4)
> [1] "Mean relative difference: 1"
>> all.equal(3, 4)
> [1] "Mean relative difference: 0.3333333"

In the first case, the difference is 3, and 3/1 = 3.

In the second case, the difference is 2, and 2/2 = 1.

In the third case, the difference is 1, and 1/3 = 0.3333333.

It's the difference relative to the first number.

It says "mean" because the two arguments could both be vectors, in which
case it would calculate a vector of differences first.  You'll have to
look at all.equal.numeric to see the exact way those are combined, but
its something like mean(abs(x-y))/mean(abs(x))

Duncan Murdoch

>
> the messages start making much less sense. I tried Wikipedia [1], but
> the description is cryptic, as is the help page. Also, Fox and
> Weisberg (2011) don't explain this particular message.
>
> Regards
> Liviu
>
> [1] http://en.wikipedia.org/wiki/Mean_difference#Relative_mean_difference
>
>

```