[R] getting the name of variables passed to a function

Horace Tso Horace.Tso at pgn.com
Mon Jul 30 22:48:22 CEST 2007


Thanks to Prof. Brian Ripley, Marc, and Andy. match.call() is what i need. After spending a weekend away from email, I stumbled on a thread on exactly the same topic this morning, 

http://finzi.psych.upenn.edu/R/Rhelp02a/archive/101445.html 

Horace

>>> "Liaw, Andy" <andy_liaw at merck.com> 7/30/2007 9:57:47 AM >>>
Here's one possibility:

R> f <- function(...) { call <- match.call(); sapply(as.list(call[-1]),
deparse) }
R> f(x, y)
[1] "x" "y"
R> f(x=x, y=y)
  x   y 
"x" "y" 

You basically need to know how to manipulate call objects.  The relevant
section in the R Language Definition should help.

Andy

 
From: Horace Tso
> 
> 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
> 
> ______________________________________________
> 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 
> and provide commented, minimal, self-contained, reproducible code.
> 
> 
> 


------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments,...{{dropped}}



More information about the R-help mailing list