Aggregate data using any number of multiple columns

Using two of Matlabs functions, unique and accumarray, this function summarizes any number of cols.
1.6K Downloads
Updated 14 Oct 2009

View License

Surprisingly, I never came across the simple solution of aggregating data using accumarray. Accumarray needs indices supplied to aggregate too. Combining this with the Unique function, the user can quickly and conveniently aggregate data using any available and appropriate funciton supported by Accumarray. The indices are created using the unique function.

This function is especially useful for aggregating timeseries of data say from hourly to daily, monthly, seasonal, etc. Like summing up precipitation, or averaging flow rates, etc.

Expected inputs is a timeseries of data with all but the last column used for generate unique combinations, and the last column is what the summarization is done on.

Additionally, I wrote a similar function (accumSeasonTS.m) aggregating data to seasons as defined by the solstices and equinoxes when given two columns of data: serial date and associated data values.

datain = r x c
fn = supplied string specifying a valid summary statistic function.
Example: @sum, @max, @min, etc.

dataout = r x c

Written by:
Jeff Burkey
King County- DNRP
email: jeff.burkey@kingcounty.gov
June 9, 2009

Syntax:
[dataout] = accumTS(datain,fn)
Example:
d = accumTS(din,@max);

Cite As

Jeff Burkey (2024). Aggregate data using any number of multiple columns (https://www.mathworks.com/matlabcentral/fileexchange/24391-aggregate-data-using-any-number-of-multiple-columns), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Tables in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.2.0.0

Updated comments.

1.1.0.0

Changed online text.

1.0.0.0