[R] Using if statement on function

Duncan Murdoch murdoch.duncan at gmail.com
Mon Jun 28 14:59:04 CEST 2010


On 28/06/2010 5:50 AM, Etienne Stockhausen wrote:
> Hello everybody,
>
> I'm trying to use a if-statment on a function. For a better 
> understanding I want to present a small example:
>
>     FUN=mean                             # could also be median,sd or 
> any other function
>     if (FUN == mean)
>        plot(...)
>     if (FUN == median)
>        plot(...) 
>     ...
>
> This doesn't work, because FUN is a function. I've already tried to 
> coerce the type of  FUN with as.character( ), but that's also not 
> possible. I'm stuck with this task and it is absolutely necessary to 
> give FUN  the class of a function.
> I'm looking forward for any hints, clues or solutions for my problem.
>   

You should use identical() to compare two functions:

 > FUN <- mean
 > identical(FUN, mean)
[1] TRUE
 > identical(FUN, median)
[1] FALSE


all.equal() is probably sufficient for your needs, but it will ignore 
some small differences.

Duncan Murdoch



More information about the R-help mailing list