Ensure the Truth of R Expressions

Share:

Description

If any of the expressions in ... are not all TRUE, stop is called, producing an error message indicating the first of the elements of ... which were not true.

Usage

1

Arguments

...

any number of (logical) R expressions, which should evaluate to TRUE.

Details

This function is intended for use in regression tests or also argument checking of functions, in particular to make them easier to read.

stopifnot(A, B) is conceptually equivalent to

1
2
{   if(any(is.na(A)) || !all(A)) stop(...) ;
      if(any(is.na(B)) || !all(B)) stop(...) }

Value

(NULL if all statements in ... are TRUE.)

See Also

stop, warning; assertCondition in package tools complements stopifnot() for testing warnings and errors.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
stopifnot(1 == 1, all.equal(pi, 3.14159265), 1 < 2) # all TRUE

m <- matrix(c(1,3,3,1), 2, 2)
stopifnot(m == t(m), diag(m) == rep(1, 2)) # all(.) |=>  TRUE

op <- options(error = expression(NULL))
# "disable stop(.)"  << Use with CARE! >>

stopifnot(all.equal(pi, 3.141593),  2 < 2, all(1:10 < 12), "a" < "b")
stopifnot(all.equal(pi, 3.1415927), 2 < 2, all(1:10 < 12), "a" < "b")

options(op)  # revert to previous error handler

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.