R: Ensure the Truth of R Expressions

stopifnot {base} | R Documentation

## Ensure the Truth of R Expressions

### 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

    stopifnot(...)

### 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 `{ 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`.

### Examples

    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

[Package base version 2.15.1 Index]