Filter löschen
Filter löschen

take averages of obvervations for each month

3 Ansichten (letzte 30 Tage)
alpedhuez
alpedhuez am 5 Jul. 2020
Kommentiert: madhan ravi am 5 Jul. 2020
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?

Akzeptierte Antwort

jonas
jonas am 5 Jul. 2020
Bearbeitet: jonas am 5 Jul. 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 Kommentare
jonas
jonas am 5 Jul. 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')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Tables finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by