[R] stopifnot() doesnt work as I expect it to. Are my expectations correct?
murdoch.duncan at gmail.com
Fri May 20 16:13:27 CEST 2016
On 20/05/2016 4:44 AM, Vasanth Mohan wrote:
> *stopifnot(FALSE, someOtherExpression)*
> For the above code I expect stopifnot() to always say that 'FALSE is not
> TRUE' regardless of what someOtherExpression is(It may evaluate to TRUE or
> FALSE or throw an error). Is my expectation correct? Is that how
> stopifnot() is supposed to work?
> The present implementation of stopifnot() does not work like that. If
> someOtherExpression would throw an error, then stopifnot() throws that
> error instead of saying 'FALSE is not TRUE'.
> So, I modified the source code of stopifnot() and now it works as I expect
> it to.
> If that is how stopifnot() is supposed to work, then kindly let me know how
> I can contribute my solution
The documentation is unclear on that. First it implies all expressions
are evaluated: "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."
But then the "conceptually equivalent" code acts the way you expected.
However, it doesn't really make sense to me to put in tests that could
themselves trigger errors unless you'd be interested in seeing those
errors, so I don't think I'd change it.
More information about the R-help