[R] Building the call of an arbitrary function
Duncan Murdoch
murdoch at stats.uwo.ca
Sun Sep 17 20:12:29 CEST 2006
On 9/17/2006 12:36 PM, Vincent Goulet wrote:
> Hy all,
>
> Is there a direct way to build the complete function call of an arbitrary
> function?
>
> Here's what I want to do. A function will build a function which will itself
> call a probability density function for some law given in argument to the
> first function:
>
>> f("gamma", 1000)
>
> will return, say,
>
> function(x, shape, rate, scale = 1/rate)
> dgamma(x + 1000, shape, rate, scale = 1/rate)
>
> (Notice that the arguments of the output function are those of dgamma().)
>
> I tried all sorts of combinations of call(), formals(), args() et al. to no
> avail. But then, I avoided, so far, to build the whole thing as a character
> string. Would it be the only option?
No, do.call is what you want.
dgamma(x + 1000, shape, rate, scale = 1/rate)
is the same as
do.call("dgamma", list(x+1000, shape, rate, scale=1/rate))
But since you're going to have to look up the parameters that are
appropriate to your target density (i.e. shape, rate, scale), I'm not
sure how useful this will be. It might be easier just to code the call
to dgamma directly.
Duncan Murdoch
More information about the R-help
mailing list