[R] Deparsing '...'
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Thu Mar 2 19:07:23 CET 2006
Matthew Dowle <mdowle at concordiafunds.com> writes:
> That's even neater. But when its called from within another function, this
> happens, see below. I was planning to call f something like 'getdots' and
> use it in several functions that need to do this.
>
> > f <- function(...) as.character(match.call())[-1]
> > f(a,b,c)
> [1] "a" "b" "c"
> > g = function(x,...) f(...)
> > g(x,a,b,c)
> [1] "..1" "..2" "..3"
Yes, that will (and must) happen. If you really want to go that route,
you need something in the veins of
> f <- function() match.call(sys.function(-1), call=sys.call(-1))
> g = function(x,...) f()
> g(x,a,b,c)
g(x = x, a, b, c)
>
> > -----Original Message-----
> > From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
> > Sent: 02 March 2006 17:18
> > To: Matthew Dowle
> > Cc: 'r-help at stat.math.ethz.ch'
> > Subject: Re: [R] Deparsing '...'
> >
> >
> > f <- function(...) as.character(match.call())[-1]
> > > f(x,a,b,c*d)
> > [1] "x" "a" "b" "c * d"
> >
> > On Thu, 2 Mar 2006, Matthew Dowle wrote:
> >
> > >
> > > Hi,
> > >
> > > The following function works, but is there a neater way to write it?
> > >
> > > f = function(x,...)
> > > {
> > > # return a character vector of the arguments passed in after 'x'
> > > gsub("
> > > ","",unlist(strsplit(deparse(substitute(list(...))),"[(,)]")))[-1]
> > > }
> > >
> > >> f(x,a,b,c*d)
> > > [1] "a" "b" "c*d"
> > >>
> > >
> > > Thanks.
> >
> > --
> > Brian D. Ripley, ripley at stats.ox.ac.uk
> > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
> > University of Oxford, Tel: +44 1865 272861 (self)
> > 1 South Parks Road, +44 1865 272866 (PA)
> > Oxford OX1 3TG, UK Fax: +44 1865 272595
> >
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list