How do I use splitapply when the applied function has non-scalar output?
Afficher commentaires plus anciens
I am trying clean variables in a dataset, creating a new table variable, but splitapply does not seam to allow for nonscalar outputs of the function.
As a minimal working example, I have a table
myTable = table();
myTable.Gender = ["Male","Female","Male","Female"]';
myTable.Var1 = [1,2,3,4]';
And I am now trying to create a new table variable where the group mean is subtracted from "Var1" (yielding Var2 = [-1, -1, 1, 1])
When using splitapply(), I get the error
Error using splitapply (line 132)
The function '...' returned a non-scalar value when applied to the 1st group of data.
Is there a way to do this, also for function more involved than demeaning the input variables?
Thanks in advance,
Chris
Réponse acceptée
Plus de réponses (1)
dpb
le 6 Déc 2019
[A,B,C,...]=splitapply(func, ...);
applies func to inputs by group and returns the given outputs...
See the doc for details, examples.
The function uses the group inputs for each call and outputs M (scalar) variables. Each output can be a different type/class, but must be consistent from call to call for each output.
1 commentaire
clauper
le 6 Déc 2019
Catégories
En savoir plus sur Data Type Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!