[R] summing elements in a list of functions

Giovanni Petris GPetris at uark.edu
Fri Oct 20 16:32:59 CEST 2006


Here is one way. To have a vectorized version you need to redefine
't0', though 

t0 <- function(x) {1}
t1 <- function(x) {x}
t2 <- function(x) {x^2}
t3 <- function(x) {x^3}
ttt <- list(t0,t1,t2,t3)

rrr <- function(x) sum(sapply(seq(along=ttt), function(i) ttt[[i]](x)))

## vectorized version
ttt[[1]] <- t0 <- function(x) rep(1, length(x))
rrr2 <- function(x) rowSums(sapply(seq(along=ttt), function(i) ttt[[i]](x)))

Hope this helps,
Giovanni

> Date: Fri, 20 Oct 2006 15:19:06 +0100
> From: James Foadi <jf117 at york.ac.uk>
> Sender: r-help-bounces at stat.math.ethz.ch
> Precedence: list
> User-Agent: KMail/1.9.4
> 
> Dear all,
> I have looked for an answer for a couple of days, but can't come with any 
> solution.
> 
> I have a set of functions, say:
> 
> > t0 <- function(x) {1}
> > t1 <- function(x) {x}
> > t2 <- function(x) {x^2}
> > t3 <- function(x) {x^3}
> 
> I would like to find a way to add up the previous 4 functions and obtain a new 
> function:
> 
> > rrr <- function(x) {1+x+x^2+x^3}
> 
> without, actually, having to write it in the previous form (I could have cases 
> with hundreds of functions). I thought that perhaps I could first define a 
> list of functions:
> 
> > ttt <- list(t0,t1,t2,t3)
> 
> and then I could use something like "sum", to add up all the elements of the 
> list and obtain another function. I've tried:
> 
> > rrr <- function(x) {sum(ttt)}
> 
> but it does not work.
> 
> Any help with this is greatly appreciated.
> 
> Cheers,
> 
> james
> -- 
> Dr James Foadi
> Department of Physics
> University of York
> York YO10 5DD
> 
> email: jf117 at york.ac.uk
> web page: http://www-users.york.ac.uk/~jf117
> Tel: 0044 1904 434622
> Mobile: 0044 7740 678548
> 
> ______________________________________________
> R-help at 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.
> 
> 


-- 

 __________________________________________________
[                                                  ]
[ Giovanni Petris                 GPetris at uark.edu ]
[ Department of Mathematical Sciences              ]
[ University of Arkansas - Fayetteville, AR 72701  ]
[ Ph: (479) 575-6324, 575-8630 (fax)               ]
[ http://definetti.uark.edu/~gpetris/              ]
[__________________________________________________]



More information about the R-help mailing list