Borrar filtros
Borrar filtros

How to to calculate each decile average based on group?

3 visualizaciones (últimos 30 días)
Elbert Liu
Elbert Liu el 25 de Jul. de 2019
Editada: Jalaj Gambhir el 30 de Jul. de 2019
Hi guys,
I have a table with variables 'Date', 'Volumn'. Now I want to first group the variable by 'Date', then under each group, I want to calculate the average of first decile of 'Volumn'. Finally I want to generage a new table associates 'Date' and the calculated 'Average First Decile Volumn'. Is there any easy way to do this?
Thanks a lot.

Respuestas (1)

Jalaj Gambhir
Jalaj Gambhir el 30 de Jul. de 2019
Editada: Jalaj Gambhir el 30 de Jul. de 2019
Hi,
In a table, you can first group rows using unique date values in the Date column, then compute your required statistics using accumarray. You can refer to the example below:
dates = T.Date;
[uniqueDates,ua,uc] = unique(dates);
mean_T = accumarray(uc,T.Volumn,[],@mean);
new_table = table(uniqueDates,mean_T);
You can replace @mean with your function to compute average first decile. Refer prctile for the same.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by