How to sum by identifier

8 views (last 30 days)
QuanCCC
QuanCCC on 16 Sep 2018
Edited: QuanCCC on 25 Sep 2018
Hi there,
I have a table data: A column is the identifier data, column B C D is the data I want to sum up by the same A value.
How can I do that?
I tried 'accumarray', but it seems I mixed table and array. MATLAB says"Undefined function 'accumarray' for input arguments of type 'table'." Then I turned my data to an array, MATLAB says "All input arguments must be tables." And I do have 3 columns values to be summed up. Thank you.
[a,~,c] = unique(yourdata(:,1)); % 'yourdata(:,1)' 1 means column 1 is the identifier
output = [a, accumarray(c,yourdata(:,2))]; % 2 means the colume to be summed up.

Accepted Answer

Steven Lord
Steven Lord on 16 Sep 2018
Use groupsummary with A as the grouping variable.
  1 Comment
QuanCCC
QuanCCC on 25 Sep 2018
Edited: QuanCCC on 25 Sep 2018
If the sum up is for all data with the same identifier, a groupsummary is the best idea. If you have more data (more than needed for the sum up) with the same identifier, the codes I mentioned works.

Sign in to comment.

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!