[R] understanding as.list(substitute(...()))

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Tue Oct 6 06:30:41 CEST 2020


You need to understand what substitute() does -- see ?substitute and/or a
tutorial on "R computing on the language" or similar.

Here is a simple example that may clarify:

> dots <- function(...) as.list(substitute(...()))
> dots(log(foo))
[[1]]
log(foo)  ## a call, a language object

> dots2 <- function(...) as.list(...)
> dots2(log(foo))
Error in as.list(...) : object 'foo' not found
## substitute() does not evaluate its argument; as.list() does

Cheers,
Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Mon, Oct 5, 2020 at 1:37 PM Tim Taylor <tim.taylor using hiddenelephants.co.uk>
wrote:

> Could someone explain what is happening with the ...() of the
> following function:
>
> dots <- function(...) as.list(substitute(...()))
>
> I understand what I'm getting as a result but not why.   ?dots and
> ?substitute leave me none the wiser.
>
> regards
> Tim
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list