Description Usage Arguments Details Value References See Also Examples
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. Do not use all.equal directly in
if expressions—either use isTRUE(all.equal(....)) or
identical if appropriate.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | all.equal(target, current, ...)
## S3 method for class 'numeric'
all.equal(target, current,
tolerance = .Machine$double.eps ^ 0.5, scale = NULL,
..., check.attributes = TRUE)
## S3 method for class 'list'
all.equal(target, current, ...,
check.attributes = TRUE, use.names = TRUE)
## S3 method for class 'environment'
all.equal(target, current, all.names=TRUE, ...)
## S3 method for class 'POSIXt'
all.equal(target, current, ..., tolerance = 1e-3, scale)
attr.all.equal(target, current, ...,
check.attributes = TRUE, check.names = TRUE)
|
target |
R object. |
current |
other R object, to be compared with |
... |
Further arguments for different methods, notably the following two, for numerical comparison: |
tolerance |
numeric ≥ 0. Differences smaller than
|
scale |
numeric scalar > 0 (or |
check.attributes |
logical indicating if the
|
use.names |
logical indicating if |
all.names |
logical passed to |
check.names |
logical indicating if the |
all.equal is a generic function, dispatching methods on the
target argument. To see the available methods, use
methods("all.equal"), but note that the default method
also does some dispatching, e.g. using the raw method for logical
targets.
Remember that arguments which follow ... must be specified by
(unabbreviated) name: some of them were before ... prior to
R 3.1.0. It is inadvisable to pass unnamed arguments in ...
as these will match different arguments in different methods.
Numerical comparisons for scale = NULL (the default) are
typically on relative difference scale unless the target values
are close to zero: First, the mean absolute difference of the two
numerical vectors is computed. If this is smaller than
tolerance or not finite, absolute differences are used,
otherwise relative differences scaled by the mean absolute
target value.
(Note that these comparisons are computed only for those vector elements
where target is not NA and differs from current.)
If scale is positive, absolute comparisons are made after
scaling (dividing) by scale.
For complex target, the modulus (Mod) of the
difference is used: all.equal.numeric is called so arguments
tolerance and scale are available.
The list method compares components of
target and current recursively, passing all other
arguments, as long as both are “list-like”, i.e., fulfill
either is.vector or is.list.
The environment method works via the list method,
and is also used for reference classes (unless a specific
all.equal method is defined).
The methods for the date-time classes by default allow a tolerance of
tolerance = 0.001 seconds, and ignore scale.
attr.all.equal is used for comparing
attributes, returning NULL or a
character vector.
Either TRUE (NULL for attr.all.equal) or a vector
of mode "character" describing the differences
between target and current.
Chambers, J. M. (1998)
Programming with Data. A Guide to the S Language.
Springer (for =).
identical, isTRUE, ==, and
all for exact equality testing.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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), tolerance = 0) # to see difference
## advanced: equality of environments
ae <- all.equal(as.environment("package:stats"),
asNamespace("stats"))
stopifnot(is.character(ae), length(ae) > 10,
## were incorrectly "considered equal" in R <= 3.1.1
all.equal(asNamespace("stats"), asNamespace("stats")))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.