Try this: > foo2 <- function(x=2*y, y=x/2) eval(substitute(cat(x,y,"\n"))) > foo2(x = 1, y = x/3) 1 0.3333333 > foo2(x = y/2, y = 10) 5 10
On Wed, Mar 10, 2010 at 7:26 AM, Mark Heckmann <mark.heckm...@gmx.de> wrote: > I have the following function that makes use of lazy loading. > > foo <- function(x=2*y, y=x/2) cat(x,y) > > Now I want to be able to modify it like below: > > foo(y=x/3) > > Of course, this does not work as the object x is not known. Still I would > like to be able to pass a function as an argument that is evaluated using > lazy loading. > > Can someone help? > > Thanks, > Mark > ––––––––––––––––––––––––––––––––––––––– > Mark Heckmann > Dipl. Wirt.-Ing. cand. Psych. > Vorstraße 93 B01 > 28359 Bremen > Blog: www.markheckmann.de > R-Blog: http://ryouready.wordpress.com > > ______________________________________________ > 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. > ______________________________________________ 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.