Hi, thank you... I think I will go for the if-stop approach as the stop() stops the total function... So there is just one little other question: What is the opposite of is.numeric? Is ther isnot.numeric? How can that be implemented in following function:
f <- function(a){ if(is.numeric(a)) stop("a is not numeric") if(0 > a && a > 1) stop("a must be a value between 0 and 1") a } /Johannes -------- Original-Nachricht -------- > Datum: Tue, 6 Dec 2011 07:04:59 -0500 > Von: "R. Michael Weylandt" <michael.weyla...@gmail.com> > An: Johannes Radinger <jradin...@gmx.at> > CC: r-help@r-project.org > Betreff: Re: [R] Argument validation within functions > The quick and dirty way to do so is to use: stopifnot() in conjunction > (if necessary with all() and any()). You can replace that first > condition with a simple is.numeric() as well. A more helpful way (if > this is production code) is to use if statement with the stop() > function directly which lets you provide specific error messages. > > Michael > > On Tue, Dec 6, 2011 at 6:41 AM, Johannes Radinger <jradin...@gmx.at> > wrote: > > Hi, > > > > I just started with writing functions in R and so some questions popped > up. > > I provide some values as argument to my function such as: > > > > function(a,b,c){} > > > > Now i want that the function first checks if the arguments are valid for > the function. E.g argument "a" has to be a number in the range 0-1. How > can that easily done? > > > > So far I have: > > > > a <- as.numeric(a) > > if(0 <= a && a <= 1) > > > > to first check if a is a number...if not the function stops and gives an > error message. If it is a number it just continues... > > > > But how to check the range? > > Above there is the if-approach but then the rest of the function is > exectued as part of if (or else). Is there a simpler way without having the > if-brackets around the remaining code? > > Just a check if the value is between 0 and 1 and if yes continue with > the next line if no abort the function with a error message? How can such an > error message be created? > > > > thank you and best regards, > > > > /Johannes > > -- > > > > ______________________________________________ > > R-help@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. -- ______________________________________________ R-help@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.