[R] How to pass expression as an argument

Gabor Grothendieck ggrothendieck at gmail.com
Wed Sep 27 14:15:53 CEST 2006


On 27 Sep 2006 10:57:15 +0200, Peter Dalgaard <p.dalgaard at biostat.ku.dk> wrote:
> Tong Wang <wangtong at usc.edu> writes:
>
> > Hi,
> >      I am writing a function and need to pass a function expression as an argument,   for instance,
> >             myfun <-  function( express) {
> >                    x<- c(1,2,3)
> >                   y<-express
> >          }
> >
> >     if I call the above function by myfun( x*2 ), I get  2  as the result,  instead of  2,4,6 ,  could someone help me to
> > fix this problem ?
> >     Furthermore,  is that possible to operate this expression on different variables?  for example, in myfun(), I
> > might want to get  u*2,  z*2,  etc. without having to say x<-u, x<-z to match the expression.
> >
> > Thanks a lot for your help.
>
> Either pass the expression explicitly using myfun(quote(x*2)) or
> myfun(expression(x*2)) or use substitute(express) inside the function.
>

Regarding the second option see the source of curve by entering:

curve



More information about the R-help mailing list