mean relative differences from all.equal() (PR#9276)
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