On 20/05/2016 4:44 AM, Vasanth Mohan wrote:
Hi,
*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.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.