cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
jgrosjean
Level I

Reference Subset Data Tables Created from a Loop

I'm having some issues referencing subset data tables made from a loop. The loop works fine and creates data tables named cond1, cond2, etc, but if I try to reference those newly created tables in later code, the script log says it can't find them. Oddly enough if I run my script peicewise, it works just fine. 

 

for(i=1, i<=10, i++,
     Original_table << select where(:Sorting Condition == i);

     dti = Original_table << Subset(
          Output table("cond"||char(i)),
          Selected Rows( 1 ),
          Selected columns only( 0 )
);
);

datatable("cond"||char(i)) << new column("random", numeric, continuous, formula(round(Random Uniform(1,150)),0));

2 REPLIES 2

Re: Reference Subset Data Tables Created from a Loop

It might be simpler to insert the new data table reference dt into a list and then you can subscript or stream over the list when you need to work with a particular data table.

open tables = List();

For( i = 1, i <= 10, i++,
	Original_table << select where( :Sorting Condition == i );
	dti = Original_table << Subset(
		Output table( "cond" || Char( i ) ),
		Selected Rows( 1 ),
		Selected columns only( 0 )
	);
	Insert Into( open tables, dti );
);

open tables[i] << New Column( "random",
	numeric,
	continuous,
	formula( Round( Random Uniform( 1, 150 ) ), 0 )
);
jgrosjean
Level I

Re: Reference Subset Data Tables Created from a Loop

That works great! Thanks!