changeset 31:a02a9561febf

Further fix to correct output when using aggregating functions.
author Christopher Hummersone <c.hummersone@surrey.ac.uk>
date Wed, 29 Mar 2017 22:24:20 +0100
parents cce9b01ae857
children 731832de7c54 44863636466c
files MASSEFresults.m
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/MASSEFresults.m	Wed Mar 29 13:30:55 2017 +0100
+++ b/MASSEFresults.m	Wed Mar 29 22:24:20 2017 +0100
@@ -360,14 +360,18 @@
                 try
                     filteredTable = varfun(fhandle,dataTable,'InputVariables','value',...
                         'GroupingVariables',group);
+                    keys = group;
                 catch
                     filteredTable = varfun(fhandle,dataTable,'InputVariables','value',...
                         'GroupingVariables',altgroup);
+                    keys = altgroup;
                 end
                 % rename value column and delete GroupCount column
                 filteredTable = obj.findRenameVar(filteredTable,'value','value');
                 filteredTable.GroupCount = [];
-                dataTable = join(filteredTable, dataTable);
+                [~, ia, ib] = intersect(filteredTable(:,keys), dataTable(:,keys));
+                dataTable.value(ib) = filteredTable.value(ia);
+                dataTable = dataTable(ib, :);
             else
                 % normal filter function
                 dataTable = obj.filterRows(dataTable,filterval,col);