Is There a Way to Execute splitapply Functionality on Subtables of Master Table?
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Suppose I have a function that operates on a table and returns a row vector:
function rowvec = myfunc(Table)
Suppose I have a master table, call it T with one of its variables being Name.  I'd like to do something like the following to group by Name and concatenate rowvec computed from each subgroup:
G = findgroups(T.Name);
R = splitapply(@myfunc,T,G);
This won't work because splitapply sends the group of each variable in T to myfunc and not the subtable of T defined by G.
Is there already a function that does what I'm trying to do?
Or do I have to use the code here:  https://www.mathworks.com/matlabcentral/answers/457422-separate-table-data-in-to-sub-tables  to generate the cell array of subtables, loop over the subtables with a call to myfunc, and then concatenate the rows myself? Or maybe use cellfun on the cell array of subtables?
2 Kommentare
  dpb
      
      
 am 10 Mai 2020
				I don't follow what's wrong with splitapply?
Show us an example that doesn't do the right thing.
Antworten (1)
  Peng Li
      
 am 10 Mai 2020
        you'd better do this way:
splitapply(@(x) sum(x, 1), T{:, 2:3}, G);
5 Kommentare
  Peng Li
      
 am 11 Mai 2020
				It is not clear why you want to subtable your table before splitapply. splitapply is supposed to finish the job for you. Anyway, I'm happy that you found out the solution for your problem!
Siehe auch
Kategorien
				Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


