How to aggregate data on seasonal basis?

8 views (last 30 days)
Hello, My seasons are defined as Dec-Feb, March-May, June-August, and Sep-Nov. My data is organized in Jan-December format with daily time step. the following code will re-arrange the data on a mean seasonal basis in the sequential order (e.g Q1= Jan - March, Q2=April - June), however, in North America season are different as I explained earlier. Can someone suggest a way forward or a code piece of code?
A=rand(730,2);
t1=(datetime(1981,1,1):datetime(1982,12,31))';
TT=timetable(t1,A);
TT2=retime(TT,'quarterly','mean');
Many thanks,
Ameer

Accepted Answer

Akira Agata
Akira Agata on 29 Jun 2018
You can do that by setting new time vector as the 2nd input variable of retime function, like:
t2 = [datetime(1980,12,1):calmonths(3):datetime(1983,2,1)]';
TT2 = retime(TT,t2,'mean');
The result looks like:
>> TT2
TT2 =
9×1 timetable
t1 A
__________ __________________
1980/12/01 0.55223 0.4327
1981/03/01 0.46912 0.44696
1981/06/01 0.47352 0.46669
1981/09/01 0.51435 0.51787
1981/12/01 0.47761 0.52672
1982/03/01 0.51506 0.50781
1982/06/01 0.51125 0.58926
1982/09/01 0.491 0.52664
1982/12/01 0.84221 0.70557
  3 Comments
Aries Dwi Siswanto
Aries Dwi Siswanto on 26 Apr 2020
Hi Andrei Bobrov and Ugur Uresin,
t2 = [datetime(1980,12,1):calmonths(3):datetime(1983,2,1)]';
TT2 = retime(TT,t2,'mean');
Which part will added by 1?
Thank you,

Sign in to comment.

More Answers (0)

Categories

Find more on Statistics and Machine Learning Toolbox 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!