[R] A %nin% operator?

Jeremy Miles jeremy.miles at gmail.com
Thu Aug 5 18:08:01 CEST 2010


A related hint, Google doesn't let you search for %nin%, because it
ignores % symbols (and most other punctuation), but cuil does allow
you to search:
http://cuil.com/search?q=%25nin%25+R

On 5 August 2010 08:53, David Winsemius <dwinsemius at comcast.net> wrote:
> 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 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.
>



-- 
Jeremy Miles
Psychology Research Methods Wiki: www.researchmethodsinpsychology.com



More information about the R-help mailing list