Query.jl icon indicating copy to clipboard operation
Query.jl copied to clipboard

@map followed by @replacena with a function defined using a macro

Open sswatson opened this issue 4 years ago • 0 comments

It seems that column transformation functions defined using macros can behave differently than functions defined without macros. Here's an example:

using Match, DataFrames, Query
df = DataFrame(a = [1, 2], b = [3, missing])
f(x) = @match x begin 
    3 => "three"
    _ => missing
end
df |> 
    @map({_..., c = f(_.b)}) |>
    @replacena("successfully replaced")

The output still has NAs in it, despite the final @replacena command.

If I replace f with an equivalent version without macros (even just the one obtained by expanding the macro), this works as expected.

sswatson avatar Apr 06 '21 19:04 sswatson