Count frequencies of occurence using both text and number

2 views (last 30 days)
Hi there,
I'll give a brief example of my table:
Fish species: Count:
red fish 2
red fish 4
red fish 9
blue fish 11
blue fish 2
blue fish 2
blue fish 1
yellow fish 2
yellow fish 10
etc etc...
What I am trying to do is to find the sum of all 'red fish' 'blue fish' etc with about 500 rows and do it automatically not manually.
So I want the code to finish saying this:
red fish 15
blue fish 16
yellow fish 12
for all 29 fish species...
Help?

Accepted Answer

Adam Danz
Adam Danz on 17 Aug 2021
Edited: Adam Danz on 17 Aug 2021
Use groupsummary
% Produce table
% I use categorical variables but you can you strings or char-vectors
rng('default') % for reproducibility, do no include in your implementation
cats = categorical(["red fish","blue fish"])';
fishList = cats(randi(2,500,1));
counts = randi(10,500,1);
T = table(fishList, counts, 'VariableNames', {'Fish','Counts'});
% Show first few rows of table
head(T)
ans = 8×2 table
Fish Counts _________ ______ blue fish 6 blue fish 6 red fish 9 blue fish 3 blue fish 4 red fish 2 red fish 10 blue fish 7
% Count each fish group
groupsummary(T,'Fish')
ans = 2×2 table
Fish GroupCount _________ __________ blue fish 243 red fish 257

More Answers (0)

Categories

Find more on Tables 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!