How to split a table into multiple tables based on value in a column?
10 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I am reading in an excel file that has 2 columns of data. One of them has a lot number and the other has row/col numbers.
I've made a table that holds this information, however, I would like to make multiple tables for every set of lot numbers.
I've attached an example excel sheet. In this example there are 2 different lot numbers, so I would need it to make 2 different tables for each lot number with each corresponding row, col number! I also need it to be able to adjust if there are more than 2 different lot numbers because the sheet is always updated.
Thanks!
3 件のコメント
Stephen23
2025 年 3 月 19 日
Often splitting up data makes it harder to process. Consider instead:
採用された回答
Cris LaPierre
2025 年 3 月 19 日
There are several possible approaches based on what you need. Here's one that creates a cell array of tables, one for each unique lot number.
data = readtable ('ExampleExcel.xlsx');
% Convert RC to numeric arrays
tmp = cellfun(@str2num,data.RC,'UniformOutput',false);
data.RC = cell2mat(tmp);
% find unique LotNumbers
G = findgroups(data.LotNumber);
% Split data into table for each lot number
tblLN = splitapply(@(x1,x2){table(x1,x2)},data,G)
% view first table
tblLN{1}
2 件のコメント
Cris LaPierre
2025 年 3 月 19 日
編集済み: Cris LaPierre
2025 年 3 月 20 日
I'll reiterate the comments above. I would probably look to groupsummary, but we'd need to know more about what your end goal is to say for certain.
data = readtable ('ExampleExcel.xlsx');
% Convert RC to numeric arrays
tmp = cellfun(@str2num,data.RC,'UniformOutput',false);
data.RC = cell2mat(tmp);
% find max ID for each unique LotNumber
mxID = groupsummary(data,'LotNumber','max')
その他の回答 (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!