# Julia equivalent to 'not in' in R

**URL:** <https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835>\
**Category:** General Usage\
**Created:** [December 9, 2016, 6:42pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835 "2016-12-09T18:42:02Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Patrik\_Waldmann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patrik_waldmann/32/11154_2.png) [@Patrik\_Waldmann](https://discourse.julialang.org/u/Patrik_Waldmann)\
**Post date:** [December 9, 2016, 6:42pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/1 "2016-12-09T18:42:02Z")

</div>

What would be Julia code for the following R code:  
a ← c(1:5)  
b ← c(1:10)  
c ← b[-a]

Thanks,

Patrik

---

<div class="post-metadata">

**Author:** ![kslimes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kslimes/32/44413_2.png) [@kslimes](https://discourse.julialang.org/u/kslimes)\
**Post date:** [December 9, 2016, 7:16pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/2 "2016-12-09T19:16:15Z")

</div>

I’m not an R expert, but you want the elements of `b` which are NOT part of `a` as well, right?

One way would be:

`c = Iterators.filter(x -> x ∉ a, b)` (on lastest `master`, if you’re on `0.5` it would be `c = filter(x -> x ∉ a, b)`).

---

<div class="post-metadata">

**Author:** ![PabloZubieta](https://avatars.discourse-cdn.com/v4/letter/p/ee7513/32.png) [@PabloZubieta](https://discourse.julialang.org/u/PabloZubieta)\
**Post date:** [December 9, 2016, 7:27pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/3 "2016-12-09T19:27:13Z")

</div>

Do you want `setdiff(b, a)` ?

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [December 9, 2016, 7:39pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/4 "2016-12-09T19:39:03Z")

</div>

I frequently use `b[setdiff(1:end, a)]`.

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [December 9, 2016, 7:48pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/5 "2016-12-09T19:48:18Z")

</div>

Oh, has `filter()` left Base? Must remember that…

---

<div class="post-metadata">

**Author:** ![kslimes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kslimes/32/44413_2.png) [@kslimes](https://discourse.julialang.org/u/kslimes)\
**Post date:** [December 9, 2016, 7:53pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/6 "2016-12-09T19:53:22Z")

</div>

As far as I understand, no. But it _has_ moved into a module called `Iterators` within `Base`.

---

<div class="post-metadata">

**Author:** ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)\
**Post date:** [December 9, 2016, 11:23pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/7 "2016-12-09T23:23:10Z")

</div>

NamedArrays implements a `Not` method that does what the minus index does in R. I don’t know why a very common ideom like that is not in Julia Base though?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [December 9, 2016, 11:30pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/8 "2016-12-09T23:30:18Z")

</div>

I [made a PR](https://github.com/JuliaLang/julia/pull/4892) for something like that in Base a long while back. Seems like a reasonable addition to me.

---

<div class="post-metadata">

**Author:** ![kslimes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kslimes/32/44413_2.png) [@kslimes](https://discourse.julialang.org/u/kslimes)\
**Post date:** [December 10, 2016, 5:25am UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/9 "2016-12-10T05:25:32Z")

</div>

It’s funny to see that the branch is apparently still alive.

---

<div class="post-metadata">

**Author:** ![Patrik\_Waldmann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patrik_waldmann/32/11154_2.png) [@Patrik\_Waldmann](https://discourse.julialang.org/u/Patrik_Waldmann)\
**Post date:** [December 14, 2016, 3:22pm UTC](https://discourse.julialang.org/t/julia-equivalent-to-not-in-in-r/835/10 "2016-12-14T15:22:03Z")

</div>

Thanks for your replies. setdiff() seems to be a work around, but that function is the same as %in% in R.
