From MSchwartz at mn.rr.com  Thu Oct  5 03:22:57 2006
From: MSchwartz at mn.rr.com (MSchwartz at mn.rr.com)
Date: Thu,  5 Oct 2006 03:22:57 +0200 (CEST)
Subject: [Rd] mean relative differences from all.equal() (PR#9276)
Message-ID: <20061005012257.D0E5D207F3@slim.kubism.ku.dk>

On Thu, 2006-10-05 at 03:10 +0200, bchristo at email.arizona.edu wrote:
> Full_Name: Brad Christoffersen
> Version: 2.3.1
> OS: Windows XP
> Submission from: (NULL) (128.196.193.132)
> 
> 
> Why is the difference between two numbers so different from the "mean relative
> difference" output from the all.equal() function?  Is this an artifact of the
> way R stores numerics?  I could not find this problem as I searched through the
> submitted bugs. But I am brand new to R so I apologize if there is something
> obvious I'm missing here.
> 
> rm(list=ls(all=TRUE))  ## Remove all objects that could hinder w/ consistent
> output
> a <- 204
> b <- 203.9792
> all.equal(a,b)
> [1] "Mean relative  difference: 0.0001019608"
> a - b
> [1] 0.0208

Read the Details section of ?all.equal, which states:

Numerical comparisons for scale = NULL (the default) are done by first
computing the mean absolute difference of the two numerical vectors. If
this is smaller than tolerance or not finite, absolute differences are
used, otherwise relative differences scaled by the mean absolute
difference.

If scale is positive, absolute comparisons are made after scaling
(dividing) by scale


Thus on R version 2.4.0 (2006-10-03):

> all.equal(a, b, scale = 1)
[1] "Mean scaled  difference: 0.0208"


Please do not report doubts about behavior as bugs.  Simply post a query
on r-help first. If it is a bug, somebody will confirm it and you can
then report it as such.

BTW, time to upgrade...Go Wildcats!

HTH,

Marc Schwartz




[Rd] mean relative differences from all.equal() (PR#9276)
MSchwartz at mn.rr.com