[R] Extracting the name of a function (inverse of match.fun("myFun"))
Rolf Turner
rolf.turner at xtra.co.nz
Thu Aug 30 01:29:50 CEST 2012
On 30/08/12 10:36, Peter Langfelder wrote:
> Hi all,
>
> is there a way to extract the name of a function, i.e. do the reverse
> of match.fun applied to a character string? I would like to print out
> the name of a function supplied to another function as an argument.
>
> For example:
>
> myFunc = function(x) { x+1 }
>
> applyFunc = function(fnc, x)
> {
> fnc = match.fun(fnc)
> fnc(x)
> }
>
> Is there a way to obtain "myFunc" from the argument fnc in applyFnc
> the following call is issued?
>
> applyFnc(myFunc, 1)
You can just do:
applyFunc = function(fnc, x)
{
fnc(x)
}
You don't need to get the function's name.
That being said, you seem basically to be re-inventing do.call() in a
rather kludgy
way. I would advise you to think carefully through what you are trying
to accomplish.
cheers,
Rolf Turner
P. S. If you really want to get the *name* of the argument "fnc", you
can use
good old deparse(substitute(...)). As in:
fname <- deparse(substitute(fnc))
But as I said, you don't need to do this for what seems to be your purpose,
and so it's all rather off the point.
R. T.
More information about the R-help
mailing list