[R] an assert() function
Duncan Murdoch
murdoch.duncan at gmail.com
Tue Feb 12 15:56:05 CET 2013
On 12/02/2013 9:11 AM, Greg Minshall wrote:
> hi. i've looked for (and not found) an assert() function. needing one,
> i created the following (from stop()). i'm posting it in case 1)
> someone sees a problem with this; and 2) someone else has a need.
stopifnot() might do what you want.
The tricky thing in writing this sort of function is handling vector
inputs. Sometimes x is a vector, and then you need to decide what to do
with
assert(x > 0)
Yours will only test the first component and issue a warning; the base
one will test all(x > 0). But the base behaviour causes its own
problems; one came up recently in that
stopifnot( ncol(x) > 1 )
will not stop if x is just a vector, because ncol(x) is NULL, so ncol(x)
> 1 is a length 0 vector, and all(ncol(x) > 1) is TRUE.
Duncan Murdoch
>
> cheers, Greg
> ----
> ## an assert mechanism...
> assert <- function (shouldbe, ...) {
> if (!shouldbe) {
> .Internal(stop(as.logical(TRUE),
> .makeMessage("assertion failure: ", ..., domain = NULL)))
> }
> }
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list