How do I use splitapply when the applied function has non-scalar output?
古いコメントを表示
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
採用された回答
その他の回答 (1 件)
dpb
2019 年 12 月 6 日
[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.
カテゴリ
ヘルプ センター および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!