Use Splitapply to write multiple files

4 次查看(过去 30 天)
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