# Logical operators in julia

**URL:** <https://discourse.julialang.org/t/logical-operators-in-julia/21141>\
**Category:** General Usage\
**Tags:** question\
**Created:** [February 24, 2019, 12:49pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141 "2019-02-24T12:49:49Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ajaychat3](https://avatars.discourse-cdn.com/v4/letter/a/ecd19e/32.png) [@Ajaychat3](https://discourse.julialang.org/u/Ajaychat3)\
**Post date:** [February 24, 2019, 12:49pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/1 "2019-02-24T12:49:49Z")

</div>

Why the code below does not work in julia 1.0.3? it used to work earlier.

```julia
data_full[(data_full[:is_minor] .== 1 ) & (data_full[:LA_INC] .<= 0),:]

MethodError: no method matching &(::BitArray{1}, ::BitArray{1})
Closest candidates are:
  &(::Any, ::Any, !Matched::Any, !Matched::Any...) at operators.jl:502

Stacktrace:
 [1] top-level scope at In[21]:3

```

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [February 24, 2019, 1:06pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/2 "2019-02-24T13:06:54Z")

</div>

Without knowing what you expected as the output, I think you want to broadcast the `&` as well.

---

<div class="post-metadata">

**Author:** ![Ajaychat3](https://avatars.discourse-cdn.com/v4/letter/a/ecd19e/32.png) [@Ajaychat3](https://discourse.julialang.org/u/Ajaychat3)\
**Post date:** [February 24, 2019, 1:07pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/3 "2019-02-24T13:07:59Z")

</div>

I am trying to filter records based on the two conditions.

---

<div class="post-metadata">

**Author:** ![StevenSiew](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevensiew/32/218393_2.png) [@StevenSiew](https://discourse.julialang.org/u/StevenSiew)\
**Post date:** [February 24, 2019, 1:29pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/4 "2019-02-24T13:29:54Z")

</div>

& is the bitwise operator

prehaps you mean && which is the logical operator

---

<div class="post-metadata">

**Author:** ![bennedich](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bennedich/32/4894_2.png) [@bennedich](https://discourse.julialang.org/u/bennedich)\
**Post date:** [February 24, 2019, 1:35pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/5 "2019-02-24T13:35:33Z")

</div>

Try this:

```julia
data_full[(data_full[:is_minor] .== 1 ) .& (data_full[:LA_INC] .<= 0),:]

```

---

<div class="post-metadata">

**Author:** ![Ajaychat3](https://avatars.discourse-cdn.com/v4/letter/a/ecd19e/32.png) [@Ajaychat3](https://discourse.julialang.org/u/Ajaychat3)\
**Post date:** [February 24, 2019, 1:46pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/6 "2019-02-24T13:46:21Z")

</div>

Thanks. It works.

---

<div class="post-metadata">

**Author:** ![sukanka](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sukanka/32/7210_2.png) [@sukanka](https://discourse.julialang.org/u/sukanka)\
**Post date:** [February 24, 2019, 2:38pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/7 "2019-02-24T14:38:21Z")

</div>

> [@Ajaychat3](#):
>
> data\_full[(data\_full[:is\_minor] .== 1 ) & (data\_full[:LA\_INC] .\<= 0),:]

You should broadcast the `&` as well , note there’s a `.` before `&`

```julia
data_full[(data_full[:is_minor] .== 1 ) .& (data_full[:LA_INC] .<= 0),:]

```

---

<div class="post-metadata">

**Author:** ![mauro3](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mauro3/32/292_2.png) [@mauro3](https://discourse.julialang.org/u/mauro3)\
**Post date:** [February 24, 2019, 4:02pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/8 "2019-02-24T16:02:10Z")

</div>

Are you updating from Julia 0.5 to 1.0? If so, it might make sense to go in steps via 0.6 and 0.7 as those will give you deprecation warnings and tell you how to upgrade your code; or at least when you hit raod-blocks. In Julia 0.6 this gave:

```julia
julia> trues(2) & trues(2)
WARNING: A::AbstractArray & B::AbstractArray is deprecated, use A .& B instead.

```

See also [PSA: use Julia 0.7 if you are upgrading](https://discourse.julialang.org/t/psa-use-julia-0-7-if-you-are-upgrading/13321)

---

<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:** [February 24, 2019, 5:32pm UTC](https://discourse.julialang.org/t/logical-operators-in-julia/21141/9 "2019-02-24T17:32:12Z")

</div>

It sounds like a pain but I think it will be easier overall. Each set of deprecations is pretty easy by itself, 0.6 =\> 0.7/1.0 is the hardest since it has the most deprecations.
