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
______________________________________________
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.