MATLAB: How to use grpstats to sum several variables

beginnerfinancefinancialfinancialsgrpstatsmonthlyreturnsstockssum

Hi,
I have a table of historic stock returns that I'm trying to perform some analysis on. The first variable is Stock, the second variable is Industry and 3:374 are the monthly returns.
I am looking to sum the monthly return by industry, i.e. for Materials to have the sum of the Materials stocks, which will result in a matrix/table of industries as variable 1 and the respective monthly summed returns for the other columns.

Best Answer

Given the following table, 'TStock', which is arranged as specified in your question:
TStock =
6×5 table
Stock Industry R1 R2 R3
_____ ___________ __ ___ ___
'S1' 'Materials' 71 176 128
'S2' 'Materials' 69 163 200
'S3' 'Oil' 64 131 100
'S4' 'Oil' 64 131 156
'S5' 'Oil' 67 133 145
'S6' 'Auto' 64 119 140
Now, when you use the 'grpstats' function, you will want to specify that you would like to group by the 'Industry' column. You can also specify that you would like to 'sum' the other columns. In order for this to work, you will need to omit the 'Stock' column in the calculation, as a sum cannot be performed on non-numeric data.
GStock = grpstats(TStock(:,2:end),'Industry','sum')
Which will deliver the following output, in which the first column is the name of each industry, and the remaining columns are the sums of the monthly returns for each industry:
GStock =
3×5 table
Industry GroupCount sum_R1 sum_R2 sum_R3
___________ __________ ______ ______ ______
Materials 'Materials' 2 140 339 328
Oil 'Oil' 3 195 395 401
Auto 'Auto' 1 64 119 140