JuliaAI / ScientificTypes.jl

An API for dispatching on the "scientific" type of data instead of the machine type
MIT License
96 stars 8 forks source link

scitype([missing, missing]) errors #105

Closed ablaom closed 4 years ago

ablaom commented 4 years ago
julia> scitype([missing, missing])
ERROR: UndefVarError: T not defined
Stacktrace:
 [1] Scitype(::Type{Missing}, ::MLJScientificTypes.MLJ) at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:72
 [2] scitype(::Array{Missing,1}, ::MLJScientificTypes.MLJ, ::Val{:other}; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:77
 [3] scitype at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:77 [inlined]
 [4] scitype(::Array{Missing,1}, ::MLJScientificTypes.MLJ; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:10
 [5] scitype(::Array{Missing,1}, ::MLJScientificTypes.MLJ) at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:10
 [6] scitype(::Array{Missing,1}; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:9
 [7] scitype(::Array{Missing,1}) at /Users/anthony/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:9
 [8] top-level scope at REPL[13]:1
DilumAluthge commented 4 years ago
julia> scitype(Union{Int, Missing}[missing, missing])
AbstractVector{Union{Missing, Count}} = AbstractArray{Union{Missing, Count},1}

julia> scitype(Union{Float64, Missing}[missing, missing])
AbstractVector{Union{Missing, Continuous}} = AbstractArray{Union{Missing, Continuous},1}

julia> scitype(Union{String, Missing}[missing, missing])
AbstractVector{Union{Missing, Textual}} = AbstractArray{Union{Missing, Textual},1}

In contrast with:

julia> scitype([missing, missing])
ERROR: UndefVarError: T not defined
Stacktrace:
 [1] Scitype(#unused#::Type{Missing}, C::MLJScientificTypes.MLJ)
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:72
 [2] scitype(A::Vector{Missing}, C::MLJScientificTypes.MLJ, ::Val{:other}; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:77
 [3] scitype(A::Vector{Missing}, C::MLJScientificTypes.MLJ, ::Val{:other})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:77
 [4] scitype(X::Vector{Missing}, C::MLJScientificTypes.MLJ; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:10
 [5] scitype(X::Vector{Missing}, C::MLJScientificTypes.MLJ)
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:10
 [6] scitype(X::Vector{Missing}; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:9
 [7] scitype(X::Vector{Missing})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:9
 [8] top-level scope
   @ REPL[11]:1

julia> scitype(Missing[missing, missing])
ERROR: UndefVarError: T not defined
Stacktrace:
 [1] Scitype(#unused#::Type{Missing}, C::MLJScientificTypes.MLJ)
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:72
 [2] scitype(A::Vector{Missing}, C::MLJScientificTypes.MLJ, ::Val{:other}; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:77
 [3] scitype(A::Vector{Missing}, C::MLJScientificTypes.MLJ, ::Val{:other})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:77
 [4] scitype(X::Vector{Missing}, C::MLJScientificTypes.MLJ; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:10
 [5] scitype(X::Vector{Missing}, C::MLJScientificTypes.MLJ)
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:10
 [6] scitype(X::Vector{Missing}; kw::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:9
 [7] scitype(X::Vector{Missing})
   @ ScientificTypes ~/.julia/packages/ScientificTypes/b8I2Y/src/scitype.jl:9
 [8] top-level scope
   @ REPL[12]:1
DilumAluthge commented 4 years ago

In the case of scitype([missing, missing]) (which is equivalent to scitype(Missing[missing, missing])), what do you think we should return?

Should we just return Missing as the scientific type in this case?

DilumAluthge commented 4 years ago

Or should we return Unknown?