On Jul 21, 2014, at 10:07 AM, Mick Jordan <[email protected]> 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
Frequently used in a function body, where the function author wants the
argument to be passed as an object name, rather than a character vector, or
perhaps both, as is the case with library() and require().
For example:
test <- function(x) {as.character(substitute(x))}
# Quoted, passing "MyPackage" as a character vector
> test("MyPackage")
[1] "MyPackage"
# Not quoted, passing the object MyPackage
> test(MyPackage)
[1] "MyPackage"
In both cases, the argument passed as 'x' can then be used within the function
as a character vector, rather than as the object itself.
Regards,
Marc Schwartz
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel