[R] Testing for existence inside a function

Duncan Murdoch murdoch at stats.uwo.ca
Tue May 15 21:51:01 CEST 2007


On 5/15/2007 3:06 PM, Alberto Monteiro wrote:
> Talbot Katz wrote:
>> 
>> I'm having trouble testing for existence of an object inside a function.
>> 
> No, you are having trouble testing for existence of an object
> _before_ the function is called :-)
> 
>> Suppose I have a function:
>> 
>> f<-function(x){
>> ...
>> }
>> 
>> and I call it with argument y:
>> 
>> f(y)
>> 
>> I'd like to check inside the function whether argument y exists.
>>
> This can't be done, because the error happens before f is called.
> 
> Try this:
> 
> f <- function(x) x + 1
> f(y.does.not.exist)
> y.does.not.exist
> 
> The error message is (almost) the same, and it happens when
> parsing the line. There's no way to change f to change this.

That description is true in some languages, but not in R.  R doesn't 
check that args to functions are valid until it needs to use them.  For 
example:

 > f <- function(y) 1  # doesn't care if y exists
 > f(y.does.not.exist)
[1] 1



More information about the R-help mailing list