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.

______________________________________________
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.

Reply via email to