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 <greenb...@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@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/ ______________________________________________ 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.