Can we categorize and sum 2 columns from table

Here I've a table data temp with disease names & date as columns. How can I find sum/count of a particular disease on a given day. Was able to calculate individually:
%%for disease
data_temp.Disease = categorical (data_temp.Disease);
m_val = unique (data_temp.Disease );
m=arrayfun(@(x) sum(data_temp.Disease==x),m_val);
%% categorising &counting Date
data_temp.Date = categorical (data_temp.Timestamps);
date = unique (data_temp.Date);
m=arrayfun(@(x) sum(data_temp.Date==x),date);
How can we use both parameters together?

 Réponse acceptée

Guillaume
Guillaume le 24 Juin 2019
There are plenty of functions to compute aggregrate properties of table. groupsummary is one way, split-apply-combine workflow is another, rowfun another one.
If I understood correctly:
rowfun(@nnz, data_temp, 'GroupingVariables', {'Timestamps', 'Disease'}, 'InputVariables', 'Timestamps');
%or
groupsummary(data_temp, {'Timestamps', 'Disease'}, 'nnz', 'Timestamps');
Note that if Disease is not categorical already you should make it categorical once and for all in your table:
data_temp = convertvars(data_temp, 'Disease', 'categorical');
Timestamps on the other should be of type datetime, not a categorical array.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by