I’m starting to think that the aggregator functions need to be special somehow.
Here’s an example of two things that look very similar:
dataset = dataset.annotate_rows(AN = dataset.info.AC.sum())
dataset = dataset.annotate_rows(AN = func.sum(dataset.info.AC))
The first sums the elements of the array, and returns the sum. The second broadcasts AC across the column axis, and returns an array that is the same as dataset.info.AC * dataset.num_cols
.
This seems problematic. Maybe we should move aggregator functions out of functions
and into their own special place, so it would be something like
dataset = dataset.annotate_rows(AN = agg.sum(dataset.info.AC))