On 07/23/2015 10:41 AM, Hervé Pagès wrote:
Hi Mike,
On 07/22/2015 04:13 PM, Michael Love wrote:
it's slightly annoying to write
foo <- function(x) {
if ( ! is.numeric(x) ) stop("x should be numeric")
if ( ! length(x) == 2 ) stop("x should be length 2")
c(x[2], x[1])
}
That's a little bit kind of what stopifnot() is for:
stopifnot(is.numeric(x) && length(x) == 2)
The error message you get is not perfect English but is very concise:
> foo(letters)
Error: is.numeric(x) && length(x) == 2 is not TRUE
Actually, separating the && conditions lead to more informative errors
> foo = function(x) stopifnot(is.numeric(x), length(x) == 2)
> foo(letters)
Error: is.numeric(x) is not TRUE
> foo(1:5)
Error: length(x) == 2 is not TRUE
Martin
H.
i wonder if we could have some core functions that test the class and
the length in one and give the appropriate stop message.
maybe this exists already
-Mike
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel
--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M1 B861
Phone: (206) 667-2793
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel