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