Uwe and Marc, Many thanks to both of you for the answers. BTW, I wanted it for handling this case (a single variable inside a data variable) in the boxplot wrapper I recently wrote: http://www.r-statistics.com/2011/01/how-to-label-all-the-outliers-in-a-boxplot/
With regards, Tal ----------------Contact Details:------------------------------------------------------- Contact me: tal.gal...@gmail.com | 972-52-7275845 Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English) ---------------------------------------------------------------------------------------------- On Sun, Jan 30, 2011 at 7:01 PM, Marc Schwartz <marc_schwa...@me.com> wrote: > On Jan 30, 2011, at 10:38 AM, Tal Galili wrote: > > > Hello all, > > > > I would like to extract the variable name passed into a specific argument > of > > a function. > > Using match.call() will give me a list of arguments and what was passed > into > > them, but I couldn't find how to get a particular argument out of it (at > > least without using some string manipulation). > > > > Here is an example (in it, my objective is to know what is the variable > name > > assigned to the argument "b"): > > > > foo <- function(a, b, c) > > { > > print(match.call()) > > } > > x = 1 ; y = 1 > > foo(x, y) # here the answer should be "y" > > foo(c= x, y) # here the answer should be "" (or NULL/NA) > > > > > > Any suggestion on how to do this? > > > > > > BTW, the purpose of this is to be able to avoid the error produced by, > for > > example, this: > > > > yy <- data.frame(y = 1:10, x = 1:10) > > plot(y, data = yy) # error > > plot(y~x, data = yy) # no error... > > > Tal, > > Try this: > > x <- 1 > y <- 1 > > foo <- function(a, b, c) {as.list(match.call())} > > > > foo(x, y) > [[1]] > foo > > $a > x > > $b > y > > > > foo(x, y)$b > y > > > > foo(c = x, y)$b > NULL > > > > If you really only want 'b' and not be able to get the other arguments, you > can use: > > foo2 <- function(a, b, c) {as.list(match.call())$b} > > > foo2(x, y) > y > > > foo2(c = x, y) > NULL > > > In your plot example above, you are first dispatching plot.default(), which > of course has no 'data' argument. In the second case, you are dispatching > plot.formula() which does have a 'data' argument, as do most, if not all, R > functions that take a formula as an argument. > > HTH, > > Marc Schwartz > > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org 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.