chickadee » dataframe » df-summarize

df-summarize grouped-df summary-specsprocedure

Reduces a grouped data frame to one row per group. Each spec in summary-specs is (result-name source-col-key . function): function is called with that group's values from source-col-key, as a plain list; if source-col-key is #f, function is called with the group's list of row indices instead, so a column-agnostic function like length gives the group's row count.

(df-summarize (df-group-by df 'category)
  (list (cons* 'n #f length)
        (cons* 'total 'amount (lambda (vs) (apply + vs)))))

The result is an ordinary (ungrouped) data frame, matching dplyr's summarise(), which likewise drops grouping once there's only one grouping variable left.