How to use the 'splitapply' function for columns of a table?
13 views (last 30 days)
Show older comments
MathWorks Support Team
on 9 Aug 2019
Commented: Walter Roberson
on 22 Oct 2021
Can the 'splitapply' function work on multiple columns on a table without using 'for' loop?
Accepted Answer
MathWorks Support Team
on 9 Aug 2019
You can achieve this after converting the table into a matrix and then using the 'splitapply' function.
Please find the code snippet for a similar example below:
Age = [38; 43; 38; 40; 49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
Gender = {'F';'F';'M';'F';'M'};
T = table(Age,Height,Weight,Gender);
[G,gender] = findgroups(T.Gender);
Tarray = table2array(T(:,1:end-1));
out_mean = splitapply(@mean,Tarray,G);
Please find additional information on the 'splitapply' function in the documentation link below:
2 Comments
Robert
on 22 Oct 2021
This errors when any group only has one member. For example, if the genders are
Gender = {'F';'F';'M';'F';'F'};
I get an error when calling splitapply afterwards.
Is there any other solution?
More Answers (0)
See Also
Categories
Find more on Data Import and Analysis 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!