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

Liaw, Andy andy_liaw at merck.com
Thu Sep 23 05:34:51 CEST 2010


One possibility:

R> f = function(x, f) eval(as.call(list(as.name(f), x)))
R> f(1:10, "mean")
[1] 5.5
R> f(1:10, "max")
[1] 10

Andy 

From: Jonathan Greenberg
> 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.
> 
Notice:  This e-mail message, together with any attachme...{{dropped:11}}



More information about the R-help mailing list