Subscribe Bookmark RSS Feed

Re: How can i generate evaluation for my script

medo

New Contributor

Joined:

Jan 11, 2018

Hello 

I have used subset to generate all factors for 8 factors for example for 2 active factors start with F1with F2, F1 with F3, until factors F7 with F8 so i used loop to contunue until finding 6 active factors out of 8 

my problem when I try to evaluate all designs, it shows me just for one design so there is no evaluation loop for all other 27 designs

I hope my script can explain what I want. 

 

dt2_5_2=New Table( "First Example",
Add Rows( 17 ),
New Column( "Column 1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, -1, -1, 0, -1, 0, -1, -1, 0, -1, 1, 1, 0, 1, 0, 1, 1] )
),
New Column( "Column 2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 0, 1, 0, 1, -1, 1, 0, -1, -1, 0, -1, 0, -1, 1, -1] )
),
New Column( "Column 3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 0, 1, -1, 1, -1, -1, 0, 0, -1, 0, -1, 1, -1, 1, 1, 0] )
),
New Column( "Column 4",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, -1, 1, 1, -1, -1, 0, 1, 0, 0, 1, -1, -1, 1, 1, 0, -1] )
),
New Column( "Column 5",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 0, -1, 1, 1, -1, 1, 0, 0, -1, 0, 1, -1, -1, 1, -1, 0] )
),
New Column( "Column 6",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, -1, 1, 1, 1, 1, 0, -1, 0, 0, 1, -1, -1, -1, -1, 0, 1] )
),
New Column( "Column 7",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 1, 0, -1, 0, 1, -1, 0, -1, -1, -1, 0, 1, 0, -1, 1] )
),
New Column( "Column 8",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values( [1, -1, 0, -1, 0, 1, 1, 1, 0, -1, 1, 0, 1, 0, -1, -1, -1] )
),
Set Row States( [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] )
);
 
NamesDefaultToHere(1);
dt = DataTable("First Example");
cols = dt << getColumnNames;
for(c1 = 1, c1<= NItems(cols), c1++,
for(c2 = c1+1, c2 <= NItems(cols), c2++,
for(c3= c2+1, c3 <= NItems(cols), c3++,
for(c4= c3+1, c4 <= NItems(cols), c4++,
for(c5= c4+1, c5 <= NItems(cols), c5++,
for(c6= c5+1, c6 <= NItems(cols), c6++,
//dt << Subset(Columns(cols[c1], cols[c2]))
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3]));
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4]));
//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5]));
dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5], cols[c6]));
DOE(
Evaluate Design,
X( :Column 1, :Column 2, :Column 3, :Column 4, :Column 5, :Column 6 ),
{Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
Add Term( {4, 1} ), Add Term( {5, 1} ), Add Term( {6, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {4, 1} ), Add Alias Term( {1, 1}, {5, 1} ),
Add Alias Term( {1, 1}, {6, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {5, 1} ),
Add Alias Term( {2, 1}, {6, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {6, 1} ),
Add Alias Term( {4, 1}, {5, 1} ), Add Alias Term( {4, 1}, {6, 1} ),
Add Alias Term( {5, 1}, {6, 1} )}
);

);
);
);
);
);
);

 

 

Thanks alot 

Medo

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
cwillden

Regular Contributor

Joined:

May 1, 2017

Solution

The problem is you've hard coded the column names Column 1, Column 2,..., Column 6 into the DOE(Evaluate Design,...) part of the script, and only the first subset generated from your loop contains that set of columns.

Try this instead:

For( c1 = 1, c1 <= N Items( cols ), c1++,
	For( c2 = c1 + 1, c2 <= N Items( cols ), c2++,
		For( c3 = c2 + 1, c3 <= N Items( cols ), c3++,
			For( c4 = c3 + 1, c4 <= N Items( cols ), c4++,
				For( c5 = c4 + 1, c5 <= N Items( cols ), c5++,
					For( c6 = c5 + 1, c6 <= N Items( cols ), c6++, 
						//dt << Subset(Columns(cols[c1], cols[c2]))
						//dt << Subset(Columns(cols[c1], cols[c2], cols[c3]));
						//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4]));
						//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5]));
						dt2 = dt << Subset(
							Columns(
								cols[c1],
								cols[c2],
								cols[c3],
								cols[c4],
								cols[c5],
								cols[c6]
							)
						);
						dt2 << Evaluate Design(
							X(
								cols[c1],
								cols[c2],
								cols[c3],
								cols[c4],
								cols[c5],
								cols[c6]
							),
							{Add Term( {1, 0} ), Add Term( {1, 1} ),
							Add Term( {2, 1} ), Add Term( {3, 1} ),
							Add Term( {4, 1} ), Add Term( {5, 1} ),
							Add Term( {6, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
							Add Alias Term( {1, 1}, {3, 1} ),
							Add Alias Term( {1, 1}, {4, 1} ),
							Add Alias Term( {1, 1}, {5, 1} ),
							Add Alias Term( {1, 1}, {6, 1} ),
							Add Alias Term( {2, 1}, {3, 1} ),
							Add Alias Term( {2, 1}, {4, 1} ),
							Add Alias Term( {2, 1}, {5, 1} ),
							Add Alias Term( {2, 1}, {6, 1} ),
							Add Alias Term( {3, 1}, {4, 1} ),
							Add Alias Term( {3, 1}, {5, 1} ),
							Add Alias Term( {3, 1}, {6, 1} ),
							Add Alias Term( {4, 1}, {5, 1} ),
							Add Alias Term( {4, 1}, {6, 1} ),
							Add Alias Term( {5, 1}, {6, 1} )}
						);
						Close(dt2, no save);
					)
				)
			)
		)
	)
);

You'll notice I changed the column references to cols[c1], cols[c2], etc.  I also named the subset data table dt2 and close each subset data table after producing the Evaluate Design report so as not to further clutter up your workspace in JMP.

-- Cameron Willden
2 REPLIES
Highlighted
cwillden

Regular Contributor

Joined:

May 1, 2017

Solution

The problem is you've hard coded the column names Column 1, Column 2,..., Column 6 into the DOE(Evaluate Design,...) part of the script, and only the first subset generated from your loop contains that set of columns.

Try this instead:

For( c1 = 1, c1 <= N Items( cols ), c1++,
	For( c2 = c1 + 1, c2 <= N Items( cols ), c2++,
		For( c3 = c2 + 1, c3 <= N Items( cols ), c3++,
			For( c4 = c3 + 1, c4 <= N Items( cols ), c4++,
				For( c5 = c4 + 1, c5 <= N Items( cols ), c5++,
					For( c6 = c5 + 1, c6 <= N Items( cols ), c6++, 
						//dt << Subset(Columns(cols[c1], cols[c2]))
						//dt << Subset(Columns(cols[c1], cols[c2], cols[c3]));
						//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4]));
						//dt << Subset(Columns(cols[c1], cols[c2], cols[c3], cols[c4], cols[c5]));
						dt2 = dt << Subset(
							Columns(
								cols[c1],
								cols[c2],
								cols[c3],
								cols[c4],
								cols[c5],
								cols[c6]
							)
						);
						dt2 << Evaluate Design(
							X(
								cols[c1],
								cols[c2],
								cols[c3],
								cols[c4],
								cols[c5],
								cols[c6]
							),
							{Add Term( {1, 0} ), Add Term( {1, 1} ),
							Add Term( {2, 1} ), Add Term( {3, 1} ),
							Add Term( {4, 1} ), Add Term( {5, 1} ),
							Add Term( {6, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
							Add Alias Term( {1, 1}, {3, 1} ),
							Add Alias Term( {1, 1}, {4, 1} ),
							Add Alias Term( {1, 1}, {5, 1} ),
							Add Alias Term( {1, 1}, {6, 1} ),
							Add Alias Term( {2, 1}, {3, 1} ),
							Add Alias Term( {2, 1}, {4, 1} ),
							Add Alias Term( {2, 1}, {5, 1} ),
							Add Alias Term( {2, 1}, {6, 1} ),
							Add Alias Term( {3, 1}, {4, 1} ),
							Add Alias Term( {3, 1}, {5, 1} ),
							Add Alias Term( {3, 1}, {6, 1} ),
							Add Alias Term( {4, 1}, {5, 1} ),
							Add Alias Term( {4, 1}, {6, 1} ),
							Add Alias Term( {5, 1}, {6, 1} )}
						);
						Close(dt2, no save);
					)
				)
			)
		)
	)
);

You'll notice I changed the column references to cols[c1], cols[c2], etc.  I also named the subset data table dt2 and close each subset data table after producing the Evaluate Design report so as not to further clutter up your workspace in JMP.

-- Cameron Willden
medo

New Contributor

Joined:

Jan 11, 2018

Dear Cwillden 

that what I am looking for 

appreciate your time and thank you a lot 

Medo