On Fri, 2007-07-27 at 09:52 -0700, Horace Tso wrote: > Folks, > > I've entered into an R programming territory I'm not very familiar > with, thus this probably very elementary question concerning the > mechanic of a function call. > > I want to know from within a function the name of the variables I pass > down. The function makes use of the "..." to allow for multiple > unknown arguments, > > myfun = function(...) { do something } > > In the body I put, > > { > nm <- names(list(...)) > nm > } > > When the function is called with two vectors x, and y > > myfun(x, y) > > It returns NULL. However, when the call made is, > > >myfun(x=x, y=y) > > The result is > [1] "x" "y" > > Question : how do i get the names of the unknown variables without > explicitly saying x=x... > > Thanks in advance. > > Horace
See ?match.call and take note of the 'expand.dots' argument, which defaults to TRUE. DotsFun <- function(...) as.character(match.call())[-1] x <- 1:10 y <- 5:6 > DotsFun(x, y) [1] "x" "y" match.call() returns the full function call. In the above, we take that result, coerce it to a character vector and remove the first element, which is the function being called, thus leaving the arguments. HTH, Marc Schwartz ______________________________________________ R-help@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 and provide commented, minimal, self-contained, reproducible code.