Get all unique combinations of 2 columns from a table
    6 views (last 30 days)
  
       Show older comments
    
I have a table that has 4 variables, similar to this:
    Item1    Item2    Item3    Item4
    _____    _____    _____    _____
      1        5        7       10  
What is the best way to produce the delta of each combination of columns? Ex. Item1 vs Item2, Item1 vs Item3, etc.
0 Comments
Accepted Answer
  Stephen23
      
      
 on 19 Jan 2022
        V = {'Item1','Item2','Item3','Item4'};
T = table(1, 5, 7 ,10, 'VariableNames',V)
X = nchoosek(1:numel(V),2);
D = diff(T{:,V}(X),1,2);
Z = cell2table([V(X),num2cell(D)])
0 Comments
More Answers (1)
  Cris LaPierre
    
      
 on 19 Jan 2022
        3 Comments
  Cris LaPierre
    
      
 on 19 Jan 2022
				I was probably trying too hard to make use of the variablenames. Stephen's approach is simpler by using column numbers instead.
T = table(1, 5, 7 ,10, 'VariableNames', {'Item1' 'Item2' 'Item3' 'Item4'});
C = nchoosek(T.Properties.VariableNames,2)
delta = diff([T{1,{C{:,1}}};T{1,{C{:,2}}}])
See Also
Categories
				Find more on Tables in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

