Seth is, of course, correct, but perhaps the following may help: ## function that takes a function as an argument
> foo <- function(f,x)list(deparse(substitute(f)),f(x)) ## Value is a list of length 2; first component is a character string giving the "name" of the funtion; second component is the result of applying the function to the "x" argument. ##pass in the name (UNquoted) of the function as the first argument ## This works because the evaluator looks up the function that the symbol is bound to in the usual way > foo(mean, 1:5) [[1]] [1] "mean" [[2]] [1] 3 ## pass in an unnamed function as the first argument > foo(function(y)sum(y)/length(y), 1:5) [[1]] [1] "function(y) sum(y)/length(y)" [[2]] [1] 3 ## the following gives an error since the first argument is a character string, not a name/symbol: > foo(f="mean", 1:5) Error in foo(f = "mean", 1:5) : could not find function "f" Cheers, Bert Gunter Genentech Nonclinical Statistics South San Francisco, CA 94404 650-467-7374 -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Seth Falcon Sent: Friday, March 02, 2007 9:18 AM To: [email protected] Subject: Re: [R] from function to its name? "Ido M. Tamir" <[EMAIL PROTECTED]> writes: > I wanted to pass a vector of functions as an argument to a function to do some > calculations and put the results in a list where each list entry has > the "name" of the function. > I thought I could either pass a vector of function names as character, then > retrieve the functions etc... > Or do the opposite, pass the functions and then retrieve the names, but > this seems not to be possible it occurred to me, hence my question. Functions don't have to have names, by which I mean that the definition doesn't have to be bound to a symbol. If your function takes a list of functions then: yourFunc(theFuncs=list(function(x) x + 1)) You could force the list to have names and use them. Or you could force function names to be passed in (your other idea). + seth ______________________________________________ [email protected] 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. ______________________________________________ [email protected] 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.
