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.
So much thanks in advance
Etienne
If I understand the problem properly,
you want something like this:
function(FUN, ...)
{
FunName <- deparse(substitute(FUN))
if(FunName == "mean") {
...
} else if(FunName == "median") {
...
}
}
Using 'switch' is an alternative to 'if'.
On 28/06/2010 10:50, 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.
>
> So much thanks in advance
>
> Etienne
>
> ______________________________________________
> 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.
>
--
Patrick Burns
pburns at pburns.seanet.com
http://www.burns-stat.com
(home of 'Some hints for the R beginner'
and 'The R Inferno')
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