Here is a use-case where DataFrames.jl compares unfavorably to dplyr.
Basically, the best way to do inter-dependent column transformations is to use AsTable and return a NamedTuple. However in OP's example, they want to return a scalar and a vector simultaneously. So AsTable isn't an option without some awkward spreading of their scalar.
Maybe we can spread scalar outputs when an AsTable is the dest?