From: Uwe Ligges <ligges_at_statistik.uni-dortmund.de>

Date: Mon 09 May 2005 - 18:13:19 EST

}

*> --
*

*> 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.html Received on Mon May 09 18:16:12 2005

Date: Mon 09 May 2005 - 18:13:19 EST

Robin Hankin wrote:

> Hello Uwe

*>
**> 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] 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
**>
**> ]
*

I see, now the problem is much clearer, so what about:

lf <- length(foo) li <- length(int) l <- max(lf, li) if(l > lf) foo <- rep(foo, length = l) else if(l > li) int <- rep(int, length = l) values <- mapply(function(foo, int) do.call(foo, list(x+int)), foo, int) return(rowSums(values))

}

Uwe

*>
*

> best wishes

*>
**> Robin
**>
**>
**>
**> 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 >> >> >> >> >>

> Uncertainty Analyst

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 Mon May 09 18:16:12 2005

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