[R] Passing a function as a parameter...

Joshua Wiley jwiley.psych at gmail.com
Thu Sep 23 05:29:05 CEST 2010


Hi,

I think the easiest way is with match.fun().  For instance:

apply_some_function <- function(data, function_name) {
  FUN <- match.fun(function_name)
  FUN(data)
}


> apply_some_function(1:10,"mean")
[1] 5.5
> apply_some_function(1:10,"min")
[1] 1

Cheers,

Josh
On Wed, Sep 22, 2010 at 4:06 PM, Jonathan Greenberg
<greenberg at ucdavis.edu> wrote:
> R-helpers:
>
> If I want to pass a character name of a function TO a function, and then
> have that function executed, how would I do this?  I want
> an arbitrary version of the following, where any function can be used (e.g.
> I don't want the if-then statement here):
>
> apply_some_function <- function(data,function_name)
> {
>  if(function_name=="mean")
> {
> return(mean(data))
> }
> if(function_name=="min")
> {
> return(min(data))
> }
>
> }
>
> apply_some_function(1:10,"mean")
> apply_some_function(1:10,"min")
>
> Basically, I want the character name of the function used to actually
> execute that function.  Thanks!
>
> --j
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/



More information about the R-help mailing list