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 `isTRUE(all.equal(....))`

or
`identical`

if appropriate.

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 `=`

).

`identical`

, `isTRUE`

, `==`

, 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

[Package *base* version 2.2.1 Index]