How to get stats by group

2 次查看(过去 30 天)
Mekala balaji
Mekala balaji 2020-8-16
Hi,
I have cell array as shown below:
data:
Name Age rank
A 20 12
B 20 42
A1 13 2
A2 22 3
B2 20 32
N 22 19
How to get "min, max, mean, std" by group. Now use below code:
unq_age= unique(dsts(2:end,2))
for i =1:numel(unq_age)
tmp =unq_age(i)
idx= cellfun(@(x)isequal(x,tmp),data(:,2));
tmp_data = data(idx,3)
min_x=min(str2double(tmp_data))
max_x=max(str2double(tmp_data))
mean_x=mean(str2double(tmp_data))
std_x=std(str2double(tmp_data))
but is there any function to get group stats? in one line

回答(2 个)

Mohammad Sami
Mohammad Sami 2020-8-16
You can use the function group summary. See documentation for more details. https://www.mathworks.com/help/matlab/ref/double.groupsummary.html

Image Analyst
Image Analyst 2020-8-16
If you have the stats toolbox, try grpstats(). Otherwise try splitapply().

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

产品


版本

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by