Thanks. I don't know how many functions there will be. What if g1, g2, g3 have variable number of parameters? say g1 has parg1a, parg1b, and g3 has parg3a, parg3b, parg3c, parg4d.
f <- function(X, fs, pars) { process1(X) for (i in 1:length(fs)) fs[[i]](pars[[i]]) # doesn't work here process2(X) } On Tue, December 29, 2009 4:57 pm, Duncan Murdoch wrote: > On 29/12/2009 3:08 PM, Hao Cen wrote: > >> Hi, >> >> >> I wonder how to pass several functions and their arguments as arguments >> to a function. For example, the main function is >> >> f = function(X ) { process1(X) ... >> >> >> >> process2(X) } >> >> >> I have a few functions that operate on X, e.g. g1(X, par1), g2(X, >> par2), g3(X, par3). par1, par2 and par3 are parameters and of different >> types. I would like to pass g1, g2, g3 and their arguments to f and g1, >> g2, g3 may appear to be in different orders. So that final effect of the >> passing is > > Just pass them. If you know there are three functions, set up f as > > > f <- function(X, f1, f2, f3, par1, par2, par3) { process1(X) f1(X, par1) > f2(X, par2) f3(X, par3) process2(X) } > > > and call it as > > f(X, g1, g2, g3, par1, par2, par3) > > If you don't know how many functions there will be, put them in a list: > > > f <- function(X, fs, pars) { process1(X) for (i in 1:length(fs)) > fs[[i]](pars[[i]]) process2(X) } > > > and call it as > > f(X, list(g1, g2, g3), list(par1, par2, par3)) > > Duncan Murdoch > > >> >> f = function(X ) { process1(X) g1(X, par1) g2(X, par2) g3(X, par3) >> process2(X) } >> >> >> If I pass g2(X, par2),g3(X, par3), g1(X, par1) to f, I would expect to >> get the effect of f = function(X ) { process1(X) g2(X, par2) g3(X, par3) >> g1(X, par1) process2(X) } >> >> >> Appreciate any suggestions. >> >> >> thanks >> >> Jeff >> >> >> >> ps please ignore my previous blank subject email. It was accidentally >> sent before the letter was completed. >> >> ______________________________________________ >> R-help@r-project.org 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. > > > ______________________________________________ R-help@r-project.org 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.