cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP 19 is here! See the new features at jmp.com/new.
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
Choose Language Hide Translation Bar
SpannerHead
Level VI

Process Screening By Groups

I want to automate a Process Screening, whereby all grouped variables are included as Process Variables.

 

The Typical script I get for the Process Screening looks like this

 

Process Screening(
	Process Variables(
		Column Group( "ENG" ),
		Column Group( "REJ" )
	),
	Grouping( :WAFER, :LOT ),
	Control Chart Type( "Indiv and MR" )
);

I am able to create a list of available groups but can't figure out how to add those to the Process Screening.

 

Names Default To Here(1);
dt = Current Data Table();

Grps = dt << Get Column Groups Names;

ps = dt << Process Screening(
	Process Variables(Column Group( Expr(Grps) )),
	Grouping(:LOT, :WAFER),
	Control Chart Type("Indiv and MR"),
	Within Sigma(0),
	Overall Sigma(0),
	Stability Index(0),
	Mean(0),
	Show Tests(0),
	Test 1(0),
	Out of Spec Rate(0),
	Latest Out of Spec(0),
	Cpk(0),
	Ppk(0)
);

The script above chokes because it needs to iterate through each item in the list.

 


Slán



SpannerHead
1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Process Screening By Groups

I tried a couple of methods, but had to revert back to an Eval(Parse()) method.....ugly but it works

Names Default To Here( 1 );
dt = Current Data Table();

Grps = dt << Get Column Groups Names;
Eval(
	Parse(
		"ps = dt << Process Screening(
	Process Variables(Column Group( \!"" || Grps[1] ||
		"\!" )),
	Grouping(:LOT, :WAFER),
	Control Chart Type(\!"Indiv and MR\!"),
	Within Sigma(0),
	Overall Sigma(0),
	Stability Index(0),
	Mean(0),
	Show Tests(0),
	Test 1(0),
	Out of Spec Rate(0),
	Latest Out of Spec(0),
	Cpk(0),
	Ppk(0)
)"
	)
);
Jim

View solution in original post

2 REPLIES 2
txnelson
Super User

Re: Process Screening By Groups

I tried a couple of methods, but had to revert back to an Eval(Parse()) method.....ugly but it works

Names Default To Here( 1 );
dt = Current Data Table();

Grps = dt << Get Column Groups Names;
Eval(
	Parse(
		"ps = dt << Process Screening(
	Process Variables(Column Group( \!"" || Grps[1] ||
		"\!" )),
	Grouping(:LOT, :WAFER),
	Control Chart Type(\!"Indiv and MR\!"),
	Within Sigma(0),
	Overall Sigma(0),
	Stability Index(0),
	Mean(0),
	Show Tests(0),
	Test 1(0),
	Out of Spec Rate(0),
	Latest Out of Spec(0),
	Cpk(0),
	Ppk(0)
)"
	)
);
Jim
SpannerHead
Level VI

Re: Process Screening By Groups

I've seen uglier, I own a mirror.  Works well.  My underlying goal was to select only columns with specs applied which in my case means grouped columns.  I subsequently went at the problem in a different direction that also works.  I like your approach better.

 

Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( numeric, string );
SpecCols = {};
For Each( {colnames, index}, colList,
	spec = Column( dt, colnames ) << get property( "Spec Limits" );
	If( !Is Empty( spec ),
		Insert Into( SpecCols, colnames )
	);
);
ps = dt << Process Screening(
	Process Variables( Eval( SpecCols ) ),
	Grouping( :WAFER, :LOT ),
	Control Chart Type( "Indiv and MR" ),
	Within Sigma( 0 ),
	Overall Sigma( 0 ),
	Stability Index( 0 ),
	Mean( 0 ),
	Show Tests( 0 ),
	Test 1( 0 ),
	Out of Spec Rate( 0 ),
	Latest Out of Spec( 0 ),
	Cpk( 0 ),
	Ppk( 0 )
);

Slán



SpannerHead

Recommended Articles