Aggregating data into a panel structure
2 views (last 30 days)
Show older comments
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.
0 Comments
Answers (1)
Monisha Nalluru
on 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!
0 Comments
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!