take averages of obvervations for each month
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
suppose I have a table S
date income
----------------------------
1/1/2020 100
1/2/2020 20
I want to create a table T of mean of income at each month like
month income average
----------------------------
1/2020 50
2/2020 20
So is it that I first create
T.yyyyMM=datetime(S.date, 'InputFormat','MM/dd/yyyy', 'Format','yyyyMM');
then use
T.accumarray(T.yyyyMM,S.income,[],@mean)
Does it make sense?
0 Commenti
Risposta accettata
jonas
il 5 Lug 2020
Modificato: jonas
il 5 Lug 2020
Try this instead
retime(T,'monthly','mean')
where T is a timetable
example
t = (datetime(2020,1,1):days(1):datetime(2021,1,1))';
income = 10+rand(numel(t),1).*4;
T = timetable(t,income)
T_Monthly = retime(T,'monthly','mean')
3 Commenti
jonas
il 5 Lug 2020
I don't understand why this case is more complicated. Obviously you cannot take an average of a column with strings, but you can easily exclude it. Just pass specific columns to retime.
In your case it would be
T_Monthly = retime(T(:,1),'monthly','mean')
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Tables in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!