Weighted mean by groups
显示 更早的评论
I am trying to get the weighted mean of values by group id but I don't undersnatnd why my ouput (Mean) is a matrix and not a vector.
id = { 'a'; 'a'; 'b'; 'b'; 'c'; 'c'};
values = [1;2;3;4;5;6];
weights = [0.5;0.7;0.3;0.4;0.5;0.1];
exampletable = table(id, weights, values);
G = findgroups(exampletable.id);
wmean = @(w,v)w'.*mean(v);
Mean = splitapply(wmean, exampletable.weights, exampletable.values, G)
id = { 'a'; 'a'; 'b'; 'b'; 'c'; 'c'};
values = [1;2;3;4;5;6];
weights = [0.5;0.7;0.3;0.4;0.5;0.1];
exampletable = table(id, weights, values);
G = findgroups(exampletable.id);
wmean = @(w,v)w'.*mean(v);
Mean = splitapply(wmean, exampletable.weights, exampletable.values, G)
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Descriptive Statistics and Visualization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!