[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