Skip to content

Commit

Permalink
Simplified handling of vectors with missing values
Browse files Browse the repository at this point in the history
  • Loading branch information
gcalderone committed Apr 3, 2024
1 parent af04df5 commit 538cab2
Showing 1 changed file with 8 additions and 16 deletions.
24 changes: 8 additions & 16 deletions src/histogram.jl
Original file line number Diff line number Diff line change
Expand Up @@ -212,24 +212,16 @@ end
# Allow missing values in input
function hist(v::Vector{Union{Missing,T}}; kw...) where T <: Real
ii = findall(.!ismissing.(v))
@info "Neglecting missing values ($(length(v) - length(ii)))"
nmissing = length(v) - length(ii)
(nmissing > 0) && (@info "Neglecting missing values ($(nmissing))")
hist(convert(Vector{T}, v[ii]); kw...)
end

function hist(v1::Vector{Union{Missing,T1}}, v2::Vector{T2}; kw...) where {T1 <: Real, T2 <: Real}
ii = findall(.!ismissing.(v1) .& .!ismissing.(v2) )
@info "Neglecting missing values ($(length(v1) - length(ii)))"
hist(convert(Vector{T1}, v1[ii]), convert(Vector{T2}, v2[ii]), kw...)
end

function hist(v1::Vector{T1}, v2::Vector{Union{Missing, T2}}; kw...) where {T1 <: Real, T2 <: Real}
ii = findall(.!ismissing.(v1) .& .!ismissing.(v2) )
@info "Neglecting missing values ($(length(v1) - length(ii)))"
hist(convert(Vector{T1}, v1[ii]), convert(Vector{T2}, v2[ii]), kw...)
end

function hist(v1::Vector{Union{Missing,T1}}, v2::Vector{Union{Missing,T2}}; kw...) where {T1 <: Real, T2 <: Real}
ii = findall(.!ismissing.(v1) .& .!ismissing.(v2) )
@info "Neglecting missing values ($(length(v1) - length(ii)))"
function hist(v1::Union{Vector{T1}, Vector{Union{Missing,T1}}},
v2::Union{Vector{T2}, Vector{Union{Missing,T2}}}; kw...) where {T1 <: Real, T2 <: Real}
@assert length(v1) == length(v2)
ii = findall(.!ismissing.(v1) .& .!ismissing.(v2))
nmissing = length(v1) - length(ii)
(nmissing > 0) && (@info "Neglecting missing values ($(nmissing))")
hist(convert(Vector{T1}, v1[ii]), convert(Vector{T2}, v2[ii]), kw...)
end

0 comments on commit 538cab2

Please sign in to comment.