[R] Substituted arguments surviving multiple function calls

From: Michael Hoffman <hoffman.mm_at_gmail.com>
Date: Tue 23 Aug 2005 - 23:27:03 EST


I am using R 2.1.1 and have written a function that will retrieve a named column from a data frame:

d = data.frame(a1=c(4, 2), a2=c(6, 7))
f1 = function(x)
{

   do.call("$", list(d, substitute(x)))
}

So this works:

> f1(a1)

[1] 4 2

However, I want to make another function, f2, which also accepts a column name as an argument and then calls the first function with it:

f2 = function(x)
{

   f1(substitute(x))
}

However, this does not work:

> f2(a1)

Error in list(a1 = c(4, 2), a2 = c(6, 7))$substitute(x) :

         invalid subscript type

It works if I take the substitute() out of f1(), but then I can only call f1() through f2() or something that does the substitution for it. Is there a better way to do this?

Thanks for any help you can offer.

-- 
Michael Hoffman

______________________________________________
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
Received on Wed Aug 24 00:50:18 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:39:55 EST