-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Open
Labels
foldsum, maximum, reduce, foldl, etc.sum, maximum, reduce, foldl, etc.missing dataBase.missing and related functionalityBase.missing and related functionality
Description
julia> sum(skipmissing([1 2; missing 3]); dims=2)
ERROR: MethodError: no method matching mapfoldl(::typeof(identity), ::typeof(Base.add_sum), ::Base.SkipMissing{Matrix{Union{Missing, Int64}}}; dims=2)
Closest candidates are:
mapfoldl(::Any, ::Any, ::Any; init) at reduce.jl:162 got unsupported keyword argument "dims"
Stacktrace:
[1] kwerr(::NamedTuple{(:dims,), Tuple{Int64}}, ::Function, ::Function, ::Function, ::Base.SkipMissing{Matrix{Union{Missing, Int64}}})
@ Base ./error.jl:157
[2] mapreduce(f::Function, op::Function, itr::Base.SkipMissing{Matrix{Union{Missing, Int64}}}; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:dims,), Tuple{Int64}}})
@ Base ./reduce.jl:289
[3] sum(f::Function, a::Base.SkipMissing{Matrix{Union{Missing, Int64}}}; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:dims,), Tuple{Int64}}})
@ Base ./reduce.jl:503
[4] sum(a::Base.SkipMissing{Matrix{Union{Missing, Int64}}}; kw::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:dims,), Tuple{Int64}}})
@ Base ./reduce.jl:530
[5] top-level scope
@ REPL[6]:
Expected output ios [3; 3]
Similar for mean
though error is different, it will need the sum
case fixed anyway
julia> mean(skipmissing([1 2; missing 3]); dims=2)
ERROR: MethodError: no method matching mean(::Base.SkipMissing{Matrix{Union{Missing, Int64}}}; dims=2)
Closest candidates are:
...
Stacktrace:
[1] top-level scope
Expected output is a matrix [1.5; 3]
Workaround is use eachslice
julia> reshape(mean.(skipmissing.(eachslice([1 2; missing 3], dims=1))), 1, :)
1×2 Matrix{Float64}:
1.5 3.0
Which isn't terrible TBH. especially if you don't care if you get a vector out, then it is just mean.(skipmissing.(eachslice([1 2; missing 3], dims=1)))
There is an old PR relating to this that seems to have gone stale?
#28027
briochemc, JobJob and nchisholm
Metadata
Metadata
Assignees
Labels
foldsum, maximum, reduce, foldl, etc.sum, maximum, reduce, foldl, etc.missing dataBase.missing and related functionalityBase.missing and related functionality