[R] Assigning default function arguments to themselves: Why?

William Dunlap wdunlap at tibco.com
Mon Dec 16 18:52:57 CET 2013


> I have noticed that many functions contain arguments with defaults of
> the form X=X.

Can you show us one (one that 'works')?

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Andrew Hoerner
> Sent: Monday, December 16, 2013 9:31 AM
> To: r-help at r-project.org
> Subject: [R] Assigning default function arguments to themselves: Why?
> 
> Let us suppose that we have a function foo(X) which is called inside
> another function, bar(). Suppose, moreover, that the name "X" has been
> assigned a value when foo is called.
> 
> I have noticed that many functions contain arguments with defaults of
> the form X=X. Call this reflexive assignment. How is foo(X=X)
> different from foo(X)? Isn't the environment from which X is located
> the parent environment of foo() in either case? Or if it looks first
> in the environment of foo, will it not immediately pop up to the
> parent frame if it is not found in foo? Are reflexive assignments just
> to keep X from being positionaly assigned accidentally, or are They
> doing something deeper?
> 
> A question which is (I think) related: Is it good or bad practice,
> when defining a function inside another function, to use the name of a
> variable from the calling function as the argument of the called
> function?
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list