As the error indicates, you cannot retime non-numeric data. Your table contains a column "participant" which contains strings. You must remove that column before applying retime().
Here's a look at your raw data.
head(W)
unqParticipants = unique(W.participant)
If you want to apply retime() across all of your data, ignoring the participant groups,
Wnum = W;
Wnum.participant = [];
CM5_1min = retime(Wnum,'minutely','mean');
size(CM5_1min)
head(CM5_1min)
If you want to apply retime() to each participan individually, you'll need to break apart the timetable by participant and store the minutely data in a cell array.
Wnum = W;
Wnum.participant = [];
unqParticipants = unique(W.participant)
TT = cell(numel(unqParticipants), 1);
for i = 1:numel(unqParticipants)
rows = strcmp(W.participant, unqParticipants(i));
TT{i} = retime(Wnum(rows,:),'minutely','mean');
TT{i}.Participant = repmat(unqParticipants{i},size(TT{i},1),1);
end
n = 3
unqParticipants(n)
head(TT{n})
You can combine those minutely timetables back into one table and sort them by datetime
TTmain = sortrows(vertcat(TT{:}));
all(diff(TTmain.date_time) >= 0)