Hi,.
I have a code. The data takes place over 10 years. And I need the average for each day of the year: 1-365. I think everything is fine with my code.
My biggest problem are the leap years of 2012 and 2016. I don't even want to know their average. I just want them removed.
t= readtable('SSArcGIS.xls'); % read as table
t.S1 = single(strcmp(t.ComplaintLocation,'S1'));t.S2 = single(strcmp(t.ComplaintLocation,'S2'));t.S3 = single(strcmp(t.ComplaintLocation,'S3'));t.S4 = single(strcmp(t.ComplaintLocation,'S4'));t.S5 = single(strcmp(t.ComplaintLocation,'S5'));t.S6 = single(strcmp(t.ComplaintLocation,'S6'));t.S7 = single(strcmp(t.ComplaintLocation,'S7'));t.S8 = single(strcmp(t.ComplaintLocation,'S8'));t.S9 = single(strcmp(t.ComplaintLocation,'S9'));t.S10 = single(strcmp(t.ComplaintLocation,'S10'));t.S11 = single(strcmp(t.ComplaintLocation,'S11'));t.S12 = single(strcmp(t.ComplaintLocation,'S12'));t.S13 = single(strcmp(t.ComplaintLocation,'S13'));t.S14 = single(strcmp(t.ComplaintLocation,'S14'));% convert to date time
t.Date = datetime(t.Date, 'Format', 'MM/dd/yyyy');% get unique dates
T1=datetime('01/01/2010');T2=datetime('12/31/2019');T=T1:T2;unique_dates = T;for ii =1: length(unique_dates) tmp = t(ismember(t.Date, unique_dates(ii)),:); % get unique dates data(ii).Date = unique_dates(ii); data(ii).S1 = sum(tmp.S1); data(ii).S2 = sum(tmp.S2); data(ii).S3 = sum(tmp.S3); data(ii).S4 = sum(tmp.S4); data(ii).S5 = sum(tmp.S5); data(ii).S6 = sum(tmp.S6); data(ii).S7 = sum(tmp.S7); data(ii).S8 = sum(tmp.S8); data(ii).S9 = sum(tmp.S9); data(ii).S10 = sum(tmp.S10); data(ii).S11 = sum(tmp.S11); data(ii).S12 = sum(tmp.S12); data(ii).S13 = sum(tmp.S13); data(ii).S14 = sum(tmp.S14);end% convert structure to table
data = struct2table(data);temp = data;temp.day = day(temp.Date,'dayofyear');temp.Date = [];% Now use varfun with @mean as your function and Day as your GroupingVariable
dailyAverage = varfun(@sum,temp,'GroupingVariables','day');temp = data;temp.Year = year(temp.Date);temp.Date = [];
Any help will be appreciated.
Thanks
Best Answer