ximing wu <[EMAIL PROTECTED]> wrote:
        > I want to generate a large amount of functions,
        > 
        > say f=function(x,t) exp(-t[1]-t[2]*g_1(x)-t[3]*g_2(1+x))
        > 
        > where g_1(x) and g_2(x) are from a long list of moments, such 
        > as x, x^2, 
        > log(x), log(1+x) .. and so on.
        > 
        > Any suggestions on how to do this efficiently?

Unfortunately, outer() doesn't like function elements.

Let's suppose you have vectors g.1[1:n] and g.2[1:n],
and that you want to construct a list f[1:n] of functions.

f <- lapply(1:n, function(i) {
        p <- g.1[i]
        q <- g.2[i]
        function (x, t) exp(-t[1] - t[2]*p(x) - t[3]*q(x))
     })

will make a list of n functions.  Note that the function passed to lappy()
returns a function.  In R, it returns a *different* function each time,
and each of these points to an environment with its own copy of p and q.

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help

Reply via email to