Effacer les filtres
Effacer les filtres

Aggregating data into a panel structure

2 vues (au cours des 30 derniers jours)
James Stewart
James Stewart le 15 Sep 2020
I have a data set ~30,000 obs. I want to aggregate(sum) one vector over three others so it is in a panel data structure.
I have the variables: Zone(4 level factor), Suburbs(20level factor), Year(10 level factor), and #ofHouses.
I want the sum of the #ofHouses for each Zone, for each Suburb and for each year.
i.e. the panel data structure needs to be indexed by the i,j,t (i=zone,j=suburb,t=time)
Is there a matlab function for this? I found accumarray but can't figure out how it works for this data.

Réponses (1)

Monisha Nalluru
Monisha Nalluru le 18 Sep 2020
findgroup function is used to split the data based on the group and return groups numbers
splitapply function is used to apply the required function of the group and return the result
As an example from patients data first I am dividing the group based on Gender,Smoker,Age and at the end I was calculating the mean weight for each group
load patients.mat
GT=table(Gender,Smoker,Age);
[G,results] = findgroups(GT);
meanweight=splitapply(@mean,Weight,G);
results.meanWeight=meanweight;
results
You can use similar like above example!

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by