all.equal {base}R Documentation

Test if Two Objects are (Nearly) Equal

Description

all.equal(x,y) is a utility to compare R objects x and y testing ``near equality''. If they are different, comparison is still made to some extent, and a report of the differences is returned.

Usage

all.equal(target, current, ...)

all.equal.numeric(target, current,
                  tolerance= .Machine$double.eps ^ 0.5, scale=NULL)

Details

There are several methods available, most of which are dispatched by the default method, see methods("all.equal"). all.equal.list and all.equal.language provide comparison of recursive objects.

Numerical comparison is done using averge (mean) relative error, unless scale is used or when the absolute difference is less than tolerance. For complex arguments, Mod of difference is used.

attr.all.equal is used for comparing attributes, returning NULL or character.

Value

Either TRUE or a vector of mode "character" describing the differences between target and current.

Numerical differences are reported by relative error

See Also

==, and all for exact equality testing.

Examples

all.equal(pi, 355/113) # not precise enough (default tol) > relative error

all.equal(gamma(2:14),   cumprod(1:13)) # TRUE, but
all      (gamma(2:14) == cumprod(1:13)) # FALSE, since not exactly
all.equal(gamma(2:14),   cumprod(1:13), tol=0) # to see difference

all.equal(options(), .Options)
.Options $ myopt <- TRUE
all.equal(options(), as.list(.Options))
rm(.Options)

[Package Contents]