How do you split a table into sub-tables based on entries in a specific column?
조회 수: 67 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2020년 5월 27일
편집: MathWorks Support Team
2022년 10월 13일
How do you split a table into sub-tables based on entries in a specific column? Essentially, I want to divide my table data into groups, determined by one of its values.
채택된 답변
MathWorks Support Team
2022년 10월 13일
편집: MathWorks Support Team
2022년 10월 13일
I have created a simple example which demonstrates how to split a table based on the first column as the category variable.
The script is also attached as "test_script.m". Please read the comments to get a better understanding of how to use the script for your use case.
% Patient pateint data
load patients
% Create test table
T = table(Gender(1:5), Height(1:5), 'VariableNames', {'Gender', 'Height'});
% Group based on first column - gender column
% Modify 1 to appropriate column number
G = findgroups(T{:, 1});
% Split table based on first column - gender column
T_split = splitapply( @(varargin) varargin, T , G);
% Allocate empty cell array fo sizxe equal to number of rows in T_Split
subTables = cell(size(T_split, 1));
% Create sub tables
for i = 1:size(T_split, 1)
subTables{i} = table(T_split{i, :}, 'VariableNames', ...
T.Properties.VariableNames);
end
% Display Results
disp('Full Table:');
disp(T);
disp('Sub Table 1:');
disp(subTables{1});
disp('Sub Table 2:');
disp(subTables{2});
See this documentation for another example of using 'splitapply':
Here is a list of the functions I am using:
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Tables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!