Tong Wang <[EMAIL PROTECTED]> 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. 

-- 
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - ([EMAIL PROTECTED])                  FAX: (+45) 35327907

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

Reply via email to