# TypeError: non-boolean (Missing) used in boolean context

**URL:** <https://discourse.julialang.org/t/typeerror-non-boolean-missing-used-in-boolean-context/25227>\
**Category:** New to Julia\
**Created:** [June 13, 2019, 8:08am UTC](https://discourse.julialang.org/t/typeerror-non-boolean-missing-used-in-boolean-context/25227 "2019-06-13T08:08:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![shahriariit](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shahriariit/32/8849_2.png) [@shahriariit](https://discourse.julialang.org/u/shahriariit)\
**Post date:** [June 13, 2019, 8:08am UTC](https://discourse.julialang.org/t/typeerror-non-boolean-missing-used-in-boolean-context/25227/1 "2019-06-13T08:08:16Z")

</div>

I try to run this code

```julia
## remove NaNs
df_food[:gpa] =
  collect(FltOrMiss, map(x -> isnan(x)?missing:x, df_food[:gpa]))
df_food[:wgt] =
collect(FltOrMiss, map(x -> isnan(x)?missing:x, df_food[:wgt]))

```

But get this error:

```julia
TypeError: non-boolean (Missing) used in boolean context

Stacktrace:
 [1] #40 at ./In[31]:1 [inlined]
 [2] iterate at ./generator.jl:47 [inlined]
 [3] collect_to!(::Array{Float64,1}, ::Base.Generator{Array{Union{Missing, Float64},1},getfield(Main, Symbol("##40#41"))}, ::Int64, ::Int64) at ./array.jl:656
 [4] collect_to_with_first! at ./array.jl:643 [inlined]
 [5] _collect(::Array{Union{Missing, Float64},1}, ::Base.Generator{Array{Union{Missing, Float64},1},getfield(Main, Symbol("##40#41"))}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at ./array.jl:637
 [6] collect_similar(::Array{Union{Missing, Float64},1}, ::Base.Generator{Array{Union{Missing, Float64},1},getfield(Main, Symbol("##40#41"))}) at ./array.jl:561
 [7] map(::Function, ::Array{Union{Missing, Float64},1}) at ./abstractarray.jl:1987
 [8] top-level scope at In[31]:1

```

How can i solve this unexpected error.

---

<div class="post-metadata">

**Author:** ![greg\_plowman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/greg_plowman/32/8100_2.png) [@greg\_plowman](https://discourse.julialang.org/u/greg_plowman)\
**Post date:** [June 13, 2019, 9:25am UTC](https://discourse.julialang.org/t/typeerror-non-boolean-missing-used-in-boolean-context/25227/2 "2019-06-13T09:25:29Z")

</div>

Is it possible that some elements from `df_food[:gpa]` are `missing`?  
In that case `isnan(x)` will return `missing` (a non-boolean).  
Maybe you need to also test for `ismissing(x)`

---

<div class="post-metadata">

**Author:** ![shahriariit](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shahriariit/32/8849_2.png) [@shahriariit](https://discourse.julialang.org/u/shahriariit)\
**Post date:** [June 13, 2019, 11:02am UTC](https://discourse.julialang.org/t/typeerror-non-boolean-missing-used-in-boolean-context/25227/3 "2019-06-13T11:02:32Z")

</div>

yes, it works, thanks

---

<div class="post-metadata">

**Author:** ![jar](https://avatars.discourse-cdn.com/v4/letter/j/45deac/32.png) [@jar](https://discourse.julialang.org/u/jar)\
**Post date:** [August 16, 2019, 5:18pm UTC](https://discourse.julialang.org/t/typeerror-non-boolean-missing-used-in-boolean-context/25227/5 "2019-08-16T17:18:50Z")

</div>

How did you fix the problem?
