From: Robin Hankin <r.hankin_at_noc.soton.ac.uk>

Date: Mon 09 May 2005 - 17:54:38 EST

Date: Mon 09 May 2005 - 17:54:38 EST

thanks for this. Unfortunately it doesn't quite do what I want:

R> x <- c(0.3,0.3,0.5)

R> f(c("sin","cos"),1:2,x)

- 1.266795 Warning messages: 1: longer object length is not a multiple of shorter object length in: x + int 2: number of rows of result is not a multiple of vector length (arg 1) in: cbind(foo, x + int) R>

[

I need

R> sin(x+1) + cos(x+2)

[1] 0.2972822 0.2972822 0.1963514

]

On May 9, 2005, at 08:34 am, Uwe Ligges wrote:

> Robin Hankin wrote:

*>
**>> Hi
**>> I have an application where my difficulty boils down to not
**>> being able to define a function f() with the following properties:
**>> f("sin",0:2,x) #returns sin(x+0) + sin(x+1) + sin(x+2)
**>> f(c("sin","cos"), 1:2,x) #returns sin(x+1) + cos(x+2)
**>> f(c("sin","cos","exp"),3,x) #returns sin(x+3) + cos(x+3) + exp(x+3)
**>> anyone?
**>
**> Not really nice, but hopefully works:
**>
**> f <- function(foo, int, x){
**> # too lazy to think myself about recycling:
**> X <- cbind(foo, x + int)
**> # mapply-ing over both columns
**> values <- mapply(function(foo, x) do.call(foo, list(x)),
**> X[,1], as.integer(X[,2]))
**> # caculating the sum:
**> return(sum(values))
**> }
**>
**>
**> Uwe
**>
**>
**>
**>
**>
*

-- Robin Hankin Uncertainty Analyst National Oceanography Centre, Southampton European Way, Southampton SO14 3ZH, UK tel 023-8059-7743 ______________________________________________ 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.htmlReceived on Mon May 09 18:03:13 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:31:40 EST
*