Вот самый простой способ сделать это:
julia> a=[missing -1 2 3 -12]
1×5 Array{Union{Missing, Int64},2}:
missing -1 2 3 -12
julia> a[isless.(a, 0)]
2-element Array{Union{Missing, Int64},1}:
-1
-12
При этом используется тот факт, что missing
считается больше любого числа на isless
.
Другой способ написать это:
julia> filter(x -> isless(x, 0), a)
2-element Array{Union{Missing, Int64},1}:
-1
-12
Теперь, чтобы избежать этого специального трюка с isless
, вы можете сделать следующее (использование coalesce
- это общий подход, который можно использовать для безопасной обработки значений missing
):
julia> a[coalesce.(a .< 0, false)]
2-element Array{Union{Missing, Int64},1}:
-1
-12
или
julia> filter(x -> coalesce(x < 0, false), a)
2-element Array{Union{Missing, Int64},1}:
-1
-12
наконец, вы можете быть более точным, например:
julia> filter(x -> !ismissing(x) && x < 0, a)
2-element Array{Union{Missing, Int64},1}:
-1
-12
или
julia> [v for v in a if !ismissing(v) && v < 0]
2-element Array{Int64,1}:
-1
-12
(вы можете использовать синтаксис понимания и в примерах выше)