Use Splitapply to write multiple files

조회 수: 13 (최근 30일)
Sanjay
Sanjay 2019년 11월 19일
댓글: Sanjay 2019년 11월 19일
I have grouped tables by a variable and I am trying to write multiple files based on the grouping variable. But it does not work.
I used findgroups and splitapply. But the splitapply is where I am having problems.
Here is one version of the commands I am using
load patients;
g=findgroups(Gender)
func=@(x,y) csvwrite(x,y)
splitapply(func,Gender,Weight,G)
When I figure out how to use this, I will be using it on large datastore tall arrays. Please help !

채택된 답변

Stephan
Stephan 2019년 11월 19일
편집: Stephan 2019년 11월 19일
Here is a small example of how it could work:
% some data to play with
Gender = ['m' 'm' 'w' 'w' 'm' 'w']';
Age = randi(60,6,1) + 15;
Weight = randi(100,6,1) + 20;
Height = randi(round(80/25.4),6,1) + round(110/25.4,1);
% create a table of the data
T = table(Gender,Age,Weight,Height)
% find groups depending on the gender
T.groups = findgroups(T.Gender);
% Write the 2 groups in 2 excel files depending on the gender group
% The file names here are "Table_1.xls" and "Table_2.xls" and both are
% stored in the current working folder
for k = 1:max(T.groups)
writetable(T(T.groups==k,1:end-1),['Table_' num2str(k)],'FileType','spreadsheet')
end
  댓글 수: 1
Sanjay
Sanjay 2019년 11월 19일
Hello Stephan, thank you for taking the time! Your code will work for me.
My hope still is that I could write the files without using a loop with splitapply..

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Workspace Variables and MAT Files에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by