[R] Existence of formal arguments.

Duncan Murdoch murdoch at stats.uwo.ca
Fri Jun 6 03:13:21 CEST 2008


On 05/06/2008 8:23 PM, Rolf Turner wrote:
> I just discovered what seems to me to be a slight funny in respect
> of formal argument names.  If I define a function
> 
> 	foo <- function(a,b){ ... whatever ...}
> 
> then ``inside'' foo() the exists() function will return TRUE
> from ``exists("a") whether an object named ``a'' exists or not.
> But get("a") will yield an error ``object "a" not found''
> in these circumstances.
> 
> I presume there is a reason for specifying that an object named
> by a formal argument always exists --- but it is mysterious by my
> standards.  Can anyone explain the reason for this behaviour?

Oops, I didn't explain why this is the way it should be.

Say your "whatever" above makes use of a, but you didn't pass an a in. 
Then you'd like an error, or you'd like "missing(a)" to evaluate to 
TRUE, or something along those lines.  But if a was completely undefined 
and nonexistent, R would just go looking for a global, and make use of 
that.  So it has to be marked as missing.

Duncan Murdoch



More information about the R-help mailing list