jkrumbiegel / DataFrameMacros.jl

Macros that simplify working with DataFrames.jl
MIT License
61 stars 4 forks source link

parsing issue with `@transform(df, :b = :a.b)` #3

Closed xiaodaigh closed 3 years ago

xiaodaigh commented 3 years ago
using DFMacros
using DataFrames
df = DataFrame(a = [(b=1,)], c =2)

@transform(df, :b = :a.b)

the above errors with

ERROR: ArgumentError: column name :b not found in the data frame; existing most similar names are: :a and :c
Stacktrace:
  [1] lookupname
    @ C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\other\index.jl:291 [inlined]
  [2] getindex
    @ C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\other\index.jl:297 [inlined]
  [3] (::DataFrames.var"#445#446"{DataFrames.Index})(n::Symbol)
    @ DataFrames .\none:0
  [4] iterate
    @ .\generator.jl:47 [inlined]
  [5] collect(itr::Base.Generator{Vector{Symbol}, DataFrames.var"#445#446"{DataFrames.Index}})
    @ Base .\array.jl:678
  [6] normalize_selection(idx::DataFrames.Index, sel::Pair{var"#s422", var"#s421"} where {var"#s422", var"#s421"<:(Pair{var"#s420", var"#s419"} where {var"#s420"<:Union{Function, Type}, var"#s419"<:Union{AbstractVector{Symbol}, AbstractString, DataType, Symbol, AbstractVector{var"#s418"} where var"#s418"<:AbstractString}})}, renamecols::Bool)
    @ DataFrames C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\abstractdataframe\selection.jl:250
  [7] manipulate(::DataFrame, ::Any, ::Vararg{Any, N} where N; copycols::Bool, keeprows::Bool, renamecols::Bool)
    @ DataFrames C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\abstractdataframe\selection.jl:1297
  [8] #select#473
    @ C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\abstractdataframe\selection.jl:926 [inlined]
  [9] transform(df::DataFrame, args::Any; copycols::Bool, renamecols::Bool) 
    @ DataFrames C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\abstractdataframe\selection.jl:1004
 [10] transform(df::DataFrame, args::Any)
    @ DataFrames C:\Users\RTX2080\.julia\packages\DataFrames\nxjiD\src\abstractdataframe\selection.jl:993
 [11] top-level scope
    @ c:\git\DFMacros\src\DFMacros.jl:209
jkrumbiegel commented 3 years ago

Nice find, fixed here https://github.com/jkrumbiegel/DFMacros.jl/commit/538f285de865e984e4d384b64b1bd7b7c3b276ab

xiaodaigh commented 3 years ago

thank you for this wonderful package. i've adopted it even though it's not released yet. haha