| all.equal {base} | R Documentation |
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. Don't use all.equal directly in
if expressions—either use identical or combine
the two, as shown in the documentation for identical.
all.equal(target, current, ...)
## S3 method for class 'numeric':
all.equal(target, current,
tolerance= .Machine$double.eps ^ 0.5, scale=NULL, ...)
attr.all.equal(target, current, ...)
target |
R object. |
current |
other R object, to be compared with target. |
... |
Further arguments for different methods, notably the following two, for numerical comparison: |
tolerance |
numeric >= 0. Differences smaller than
tolerance are not considered. |
scale |
numeric scalar > 0 (or NULL). See 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 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 after scaling
(dividing) by scale.
For complex arguments, the modulus Mod of the difference
is used: all.numeric.numeric is called so arguments
tolerance and scale are available.
attr.all.equal is used for comparing
attributes, returning NULL or character.
Either TRUE or a vector of mode
"character" describing the differences between target
and current.
Numerical differences are reported by relative error
Chambers, J. M. (1998)
Programming with Data. A Guide to the S Language.
Springer (for =).
==, and all for exact equality testing.
all.equal(pi, 355/113) # not precise enough (default tol) > relative error d45 <- pi*(1/4 + 1:10) stopifnot( all.equal(tan(d45), rep(1,10))) # TRUE, but all (tan(d45) == rep(1,10)) # FALSE, since not exactly all.equal(tan(d45), rep(1,10), tol=0) # to see difference all.equal(options(), .Options) all.equal(options(), as.list(.Options))# TRUE .Options $ myopt <- TRUE all.equal(options(), as.list(.Options)) rm(.Options)