Average column data with specific values

1 view (last 30 days)
I have the data below, I am trying to average the column gdppc for each country.

Accepted Answer

Robert U
Robert U on 23 Aug 2022
Hi Faustine Enos,
I do not know how your data is available and what data type you chose. It is preferrable to use table type data. Then, you can adjust the following code snippet:
col_1 = {'Country A';'Country A';'Country A';'Country A';'Country B';'Country B';'Country B';'Country C'};
col_2 = [1; 2; 3; 4; 5; 6; 7; 8];
data = table(col_1,col_2,'VariableNames',{'Country','value'});
cCountry = unique(data.Country);
for ik = 1:numel(cCountry)
sumVal(ik) = sum(data.value(ismember(data.Country,cCountry{ik})));
disp(sprintf('%s %d',cCountry{ik},sumVal(ik)));
Country A 10 Country B 18 Country C 8
Kind regards,

More Answers (1)

Simon Chan
Simon Chan on 23 Aug 2022
Use function writetable to convert your data on a table array.
Then use function groupsummary as follows
G = groupsummary(T,"country","mean","gdppc") % where T is the table array

Community Treasure Hunt

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

Start Hunting!