TypedTables.jl
TypedTables.jl copied to clipboard
Docs appear incorrect (or I'm doing something wrong or there's a bug)
The docs say if I map over a Table, then I'll get a Table back (via use of similar), but that doesn't seem to be the case:
julia> map(x->(x=x.id + 1, y=x.salary * 2), tt)
70000-element Array{NamedTuple{(:x, :y),T} where T<:Tuple,1}:
(x = 2, y = 174433.62)
(x = 3, y = 114086.76)
(x = 4, y = 92268.18)
...
Also, I tried the Generator method and that doesn't seem to be working either:
julia> Table((x=row.id + 1, y = row.salary * 2) for row in tt)
ERROR: Cannot construct table from Base.Generator{Table{NamedTuple{(:id, :first, :last, :salary, :wage, :start, :end),Tuple{Int64,String,String,Union{Missing, Float64},Union{Missing, Float64},Union{Missing, Dates.Date},Union{Missing, Dates.DateTime}}},1,NamedTuple{(:id, :first, :last, :salary, :wage, :start, :end),Tuple{CSV.Column{Int64,Int64},CSV.Column{String,PooledString},CSV.Column{String,PooledString},CSV.Column{Union{Missing, Float64},Union{Missing, Float64}},CSV.Column{Union{Missing, Float64},Union{Missing, Float64}},CSV.Column{Union{Missing, Dates.Date},Union{Missing, Dates.Date}},CSV.Column{Union{Missing, Dates.DateTime},Union{Missing, Dates.DateTime}}}}},getfield(Main, Symbol("##64#65"))}
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] _columns at /Users/jacobquinn/.julia/packages/TypedTables/ZF2b3/src/Table.jl:45 [inlined]
[3] #Table#17(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Type{Table}, ::Base.Generator{Table{NamedTuple{(:id, :first, :last, :salary, :wage, :start, :end),Tuple{Int64,String,String,Union{Missing, Float64},Union{Missing, Float64},Union{Missing, Dates.Date},Union{Missing, Dates.DateTime}}},1,NamedTuple{(:id, :first, :last, :salary, :wage, :start, :end),Tuple{CSV.Column{Int64,Int64},CSV.Column{String,PooledString},CSV.Column{String,PooledString},CSV.Column{Union{Missing, Float64},Union{Missing, Float64}},CSV.Column{Union{Missing, Float64},Union{Missing, Float64}},CSV.Column{Union{Missing, Dates.Date},Union{Missing, Dates.Date}},CSV.Column{Union{Missing, Dates.DateTime},Union{Missing, Dates.DateTime}}}}},getfield(Main, Symbol("##64#65"))}) at /Users/jacobquinn/.julia/packages/TypedTables/ZF2b3/src/Table.jl:24
[4] Table(::Base.Generator{Table{NamedTuple{(:id, :first, :last, :salary, :wage, :start, :end),Tuple{Int64,String,String,Union{Missing, Float64},Union{Missing, Float64},Union{Missing, Dates.Date},Union{Missing, Dates.DateTime}}},1,NamedTuple{(:id, :first, :last, :salary, :wage, :start, :end),Tuple{CSV.Column{Int64,Int64},CSV.Column{String,PooledString},CSV.Column{String,PooledString},CSV.Column{Union{Missing, Float64},Union{Missing, Float64}},CSV.Column{Union{Missing, Float64},Union{Missing, Float64}},CSV.Column{Union{Missing, Dates.Date},Union{Missing, Dates.Date}},CSV.Column{Union{Missing, Dates.DateTime},Union{Missing, Dates.DateTime}}}}},getfield(Main, Symbol("##64#65"))}) at /Users/jacobquinn/.julia/packages/TypedTables/ZF2b3/src/Table.jl:24
[5] top-level scope at REPL[25]:1
Thanks, Jacob. I’ll look into it when I can (currently on vacation). From memory I think similar works but maybe not collect. The Generator thing might have relied on older Tables.jl functionality (you did raise an issue I think about some changes there?).