On 30/11/2010 9:54 PM, randomcz wrote:

Hi guys,

How to pass an operator to a function. For example,

test<- function(a, ">", b)
{
       return(a>b) #the operator is passed as an argument
}

Thanks,


It's much simpler than the other suggestions. Just pass the operator, and treat it as a function. (Most examples assume you're passing the name of the operator and have to retrieve the function. No need for that.) The only complication is that operator names are not generally seen simply as identifiers by the parser, so they need backquotes when you refer to them.

So the function can simply be

test <- function(a, op, b) {
  op(a,b)
}

and then you put the operator in back quotes to pass it:

> test(4, `<`, 5)
[1] TRUE

> test(4, `>`, 5)
[1] FALSE

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.

Reply via email to