[R] How do I access with the name of a (passed) function
Duncan Murdoch
murdoch at stats.uwo.ca
Sun Oct 18 13:53:03 CEST 2009
On 17/10/2009 7:26 AM, Ajay Shah wrote:
> How would I do something like this:
>
> f <- function(x, g) {
> s <- as.character(g) # THIS DOES NOT WORK
> sprintf("The %s of x is %.0f\n", s, g(x))
> }
Gabor showed you how to do it if you pass an expression which evaluates
to a function. If you want to pass an expression that returns a
character string as below, use
if (is.character(g)) {
s <- g
g <- get(s, parent.frame()) # gets it from the caller's frame
}
>
> f(c(2,3,4), "median")
> f(c(2,3,4), "mean")
>
> and get the results
>
> "The median of x is 3"
> "The mean of x is 3"
>
Duncan Murdoch
More information about the R-help
mailing list