[Rd] Question on Code snippet semantics

William Dunlap wdunlap at tibco.com
Mon Jul 21 17:20:46 CEST 2014


subsitute(expr), with only one argument, is only useful inside of a
function and then only when the expression, expr, involves an argument
to the function.  Then the unevaluated actual arguments to the
function are substituted into the [unevaluated] expression.

E.g.,
   f <- function(x, y=stop("y is required"), z=log(-1)) {
      substitute(y + z)
   }
   f(1)
   # stop("y is required") + log(-1)
   f(1,sqrt(-1),log(1:10))
   # sqrt(-1) + log(1:10)

Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Mon, Jul 21, 2014 at 8:07 AM, Mick Jordan <mick.jordan at oracle.com> wrote:
> I came across this code in library.R
>
> package <- as.character(substitute(package))
>
> where package is the first argument to the "library" function.
>
> I've been racking my brains to understand why this is not just an elaborate
> (and ineffcient) way to write:
>
> package <- "package"
>
> E.g.
>
>> package <- as.character(substitute(package))
>> package
> [1] "package"
>>
>
> Thanks
> Mick Jordan
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list