How to use the 'splitapply' function for columns of a table?

13 visualizaciones (últimos 30 días)
Can the 'splitapply' function work on multiple columns on a table without using 'for' loop?

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 9 de Ag. de 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 comentarios
Robert
Robert el 22 de Oct. de 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?
Walter Roberson
Walter Roberson el 22 de Oct. de 2021
out_mean = splitapply(@(x) mean(x, 1),Tarray,G);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Import and Analysis en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by