Aggregate data using any number of multiple columns
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
Platform Compatibility
Windows macOS LinuxCategories
- MATLAB > Language Fundamentals > Data Types > Tables >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.