cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
miguello
Level VII

How to index list with a nested list

Based on https://community.jmp.com/t5/Discussions/Combinations-of-a-list-put-into-columns/m-p/555454

 

I have a list 

list = {"A", "B", "C"}

I need based on that make a list of all pair combinations.

 

Link above helped me to get away from long cycles or joining tables into essentially a one-liner thanks to @brady_brady 

I have this so far:

list = {"A", "B", "C"};
combinations = As List(N Choose K Matrix(N Items(list), 2));

What it does it gives me a list of lists of INDICES

{{1, 2}, {1, 3}, {2, 3}}

and what I need is list of pairs of strings:

{{"A", "B"},{"A", "C"},{"B", "C"}}

without going into cycles is there another one-liner that would do that?

Just indexing list with combinations gives me a flat list

list[combinations]
{"A", "B", "A", "C", "B", "C"}

 

 

4 REPLIES 4
jthi
Super User

Re: How to index list with a nested list

I think you could do it with substitute

Names Default To Here(1);

l = {"A", "B", "C"};
combinations = As List(N Choose K Matrix(N Items(l), 2));
a = Substitute(combinations, 1 ,"A", 2, "B", 3, "C");

but looping is more clear in my opinion

-Jarmo
miguello
Level VII

Re: How to index list with a nested list

Yeah, the list is not known at the compile time, so I guess I'll have to do it through loops.

 

jthi
Super User

Re: How to index list with a nested list

I think something like this should work with Transform Each

l1 = Transform Each({idx}, combinations, l[idx]);
-Jarmo

Re: How to index list with a nested list

This is technically a loop but will also work (assuming you've got lis = the list of values and combinations = the nchoosek matrix of pairs)

 

i = 1;
res = Repeat( { lis[ combinations[ i++, 0 ] ] } , N Items( lis ) );



Recommended Articles