Datum: Tue, 6 Dec 2011 07:04:59 -0500
Von: "R. Michael Weylandt" <michael.weylandt at gmail.com>
An: Johannes Radinger <JRadinger at gmx.at>
CC: r-help at 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 <JRadinger at gmx.at>
wrote:
Hi,
I just started with writing functions in R and so some questions popped
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
--