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?

 Respuesta aceptada

Guillaume
Guillaume el 24 de Jun. de 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.

Más respuestas (0)

Categorías

Más información sobre Genomics and Next Generation Sequencing en Centro de ayuda y File Exchange.

Preguntada:

el 24 de Jun. de 2019

Comentada:

el 26 de Jun. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by