MATLAB Answers


Create a subtable from a larger table

Asked by Wendy Cameron on 20 Jun 2018
Latest activity Commented on by Peter Perkins
on 3 Jul 2018
Hi Everyone, I'm hoping this specific question might be useful too in other more general situations.
I have some sample data attached and want to create some sub-tables from this. How can I look down the Woollybud column and where ever it says "Woolly bud" tabulate the data from the year column and the ACCUM GDD column that coincides with this and create a second table so I get a summary table: Year ACCUM GDD 1999 32 2000 11.75 2001 35.5 and so on
and likewise for the next column Budburst, create a summary table of Year and ACCUM GDD for Budburst?
Much appreciated, Wendy


Sign in to comment.


2 Answers

Answer by Steven Yeh on 20 Jun 2018
 Accepted Answer

You can use the readtable function to build a table first, then retrieve the subtable with conditional indexing.
For example:
A = readtable('Matlab example extract table.xls');
w_table = A(A.Woollybud == "Woolly bud", :);
b_table = A(A.Budburst == "Budburst", :);

  1 Comment

Thanks very much Stephen that works. If it is a table with many more columns I can then just extract the columns I want. I am slowly learning! Much appreciated.
Kind regards, Wendy

Sign in to comment.

Answer by Steven Lord
on 20 Jun 2018

Depending on what you mean by "summary" (compute the average of each table column for each value of your grouping variable, or put all the rows with the same value of your grouping variable together) either groupsummary or sortrows may be of use to you.

  1 Comment

As Steve says, it's often possible to do "groupwise" calculations without actually splitting up your data. If you have a lot of different groups, it's much easier that way.

Sign in to comment.