How to get stats by group
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Antworten (2)
Mohammad Sami
am 16 Aug. 2020
You can use the function group summary. See documentation for more details. https://www.mathworks.com/help/matlab/ref/double.groupsummary.html
0 Kommentare
Image Analyst
am 16 Aug. 2020
If you have the stats toolbox, try grpstats(). Otherwise try splitapply().
0 Kommentare
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!