I’m using Query.jl a lot, and it is very convenient for dataframe processing. However I cannot understand how to call some of its operations with dynamically generated arguments. E.g. if there is a list of column names like names = [:a, :b, :c], how to group by them? df |> @groupby(names) does not work, neither do df |> @groupby($names) or similar. I managed to manually craft the expression, and pass the whole line to @eval like this:
group_key_expr = :( {$([:(_.$k) for k in names]...)} )
groups = @eval($(df) |> @groupby($group_key_expr) |> collect)
This works, however looks very far from obvious and convenient. Do I miss anything?