On Sun, Aug 12, 2018 at 10:00 PM, Henrik Bengtsson <henrik.bengts...@gmail.com> wrote: > Hi. For any number of *known* arguments, we can do: > > one <- function(a) list(a = substitute(a)) > two <- function(a, b) list(a = substitute(a), b = substitute(b)) > > and so on. But how do I achieve the same when I have: > > dots <- function(...) list(???) > > I want to implement this such that I can do: > >> exprs <- dots(1+2) >> str(exprs) > List of 1 > $ : language 1 + 2 > > as well as: > >> exprs <- dots(1+2, "a", rnorm(3)) >> str(exprs) > List of 3 > $ : language 1 + 2 > $ : chr "a" > $ : language rnorm(3) > > Is this possible to achieve using plain R code?
You could use match.call, for example: dots <- function(...) match.call(expand.dots = FALSE)[['...']] Note that this returns a pairlist, so if you want an ordinary list you should wrap it in as.list() ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel