The examples in the help page for "%in%" (shared by "match") has the
definition of a "%w/o%" binary operator.
"%w/o%" <- function(x,y) x[!x %in% y] #-- x without y
since:
"%in%" <- function(x, table) match(x, table, nomatch = 0) > 0
It appears that you have just re-invented the without-wheel. (which
also seems to be happening a lot in Formula 1 races lately.)
--
David.
On Aug 5, 2010, at 11:19 AM, Ken Williams wrote:
Sometimes I write code like this:
qf.a <- subset(qf, pubid %in% c(104, 106, 107, 108))
qf.b <- subset(qf, !pubid %in% c(104, 106, 107, 108))
and I get a little worried that maybe I've remembered the precedence
rules
wrong, so I change it to
qf.a <- subset(qf, pubid %in% c(104, 106, 107, 108))
qf.b <- subset(qf, !(pubid %in% c(104, 106, 107, 108)))
and pretty soon my code looks like fingernail clippings (or Lisp)
and I'm
thinking about precedence rather than my original task. So I write
a %nin%
operator which I define as:
`%nin%` <- function (x, table) match(x, table, nomatch = 0L) == 0L
and then I'm happy again.
I wonder, would something like this find a home in core R? Or is
that too
much syntactic sugar for your taste?
--
Ken Williams
David Winsemius, MD
West Hartford, CT
______________________________________________
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.