all.equal                package:base                R Documentation

_T_e_s_t _i_f _T_w_o _O_b_j_e_c_t_s _a_r_e (_N_e_a_r_l_y) _E_q_u_a_l

_D_e_s_c_r_i_p_t_i_o_n:

     `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'.

_U_s_a_g_e:

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

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

_A_r_g_u_m_e_n_t_s:

  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.

_D_e_t_a_i_l_s:

     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, `Mod' of difference is used.

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

_V_a_l_u_e:

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

     Numerical differences are reported by relative error

_S_e_e _A_l_s_o:

     `==', and `all' for exact equality testing.

_E_x_a_m_p_l_e_s:

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

     stopifnot(
     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)
     all.equal(options(), as.list(.Options))# TRUE
     .Options $ myopt <- TRUE
     all.equal(options(), as.list(.Options))
     rm(.Options)

