Adding Matching Data from multiple rows

2 visualizzazioni (ultimi 30 giorni)
I have a 10x2 table of data and I want to add all the matching names in col 1 data in col 2
A = 10×2 table
Name Num
___________________ ___
Business Name One 6
Business Name Two 3
Business Name Three 1
Business Name One 5
Business Name Two 22
Business Name Three 2
Business Name One 6
Business Name Two 3
Business Name Three 32
Bussiness Name Three 4
I would like the output to be
Name Num
___________________ ___
Business Name One 17
Business Name Two 28
Business Name Three 39
But I cannot figure out a way to match all the unique names and then add the second column after. I have tried a few different ways without success.
Any help would be appreciated!

Risposta accettata

Stephen23
Stephen23 il 18 Mar 2022
Modificato: Stephen23 il 18 Mar 2022
Name = ["One";"Two";"Three";"One";"Two";"Three";"One";"Two";"Three";"Three"];
Num = [6;3;1;5;22;2;6;3;32;4];
inp = table(Name,Num)
inp = 10×2 table
Name Num _______ ___ "One" 6 "Two" 3 "Three" 1 "One" 5 "Two" 22 "Three" 2 "One" 6 "Two" 3 "Three" 32 "Three" 4
[G,Name] = findgroups(inp.Name);
Num = splitapply(@sum,inp.Num,G);
out = table(Name,Num)
out = 3×2 table
Name Num _______ ___ "One" 17 "Three" 39 "Two" 28
This is one of the approaches shown here:
  1 Commento
Maddie Long
Maddie Long il 18 Mar 2022
Thank you so much, I knew it was something simple! You rock

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Tables in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by