- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Calculate Cpk for Last 50 results
Hi, is there a simple way to calculate Cpk for only a selected number of the most recent rows by using scripts. I am looking at machine capability and although the overall Cpk is a very useful metric to identify overall process capability, once improvements have been made to the manufacturing process, I want a way to easily track if the process is improving by only looking at the Cpk for the last 50 results. I currently have a script which automatically calculates the Cpk and other metrics by performing the 'Process Screening' and saving it to a summary table. If possible I want to be able to have the overall Cpk and Cpk of the last 50 components in 2 columns next to each other in the same data table. Thanks in advance!
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Calculate Cpk for Last 50 results
Here is a simple script that can be used to get the Cp/Cpk for the last 50 rows in your data table. It generates the same table that your Process Screening generated, but this time, with just the 2 variables you want, and just for the last 50 rows of data.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt << select where( Row() < N Rows( dt ) - 50 );
dt << hide and exclude;
ps = dt << Process Screening( Y( :NPN1, :PNP1 ), Control Chart Type( "Indiv and MR" ) );
newdt = ps << get data table;
dt << clear rowstates;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Calculate Cpk for Last 50 results
Here is a simple script that can be used to get the Cp/Cpk for the last 50 rows in your data table. It generates the same table that your Process Screening generated, but this time, with just the 2 variables you want, and just for the last 50 rows of data.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt << select where( Row() < N Rows( dt ) - 50 );
dt << hide and exclude;
ps = dt << Process Screening( Y( :NPN1, :PNP1 ), Control Chart Type( "Indiv and MR" ) );
newdt = ps << get data table;
dt << clear rowstates;
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Calculate Cpk for Last 50 results
Thank you that works really well!
I've got about 50 columns of data which I am calculating Cpk values for and I'm wondering if there is an easy way to select these columns without having to hard code the column names when computing the Process Screening as you have done in the example with NPN1 and PNP1. I want to do something like the following to get the column names but it doesn't work in it's current state:
cNames = dt << Get Column Names( Numeric, "Continuous" );
scr = dt << Process Screening( Y( cNames ), Control Chart Type( "Indiv and MR" ) );
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Calculate Cpk for Last 50 results
Here is the solution.....
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
cNames = dt << Get Column Names(Numeric, "Continuous");
// shorten list for illustration purposes
remove from( cNames, 3, 128);
dt << select where( Row() < N Rows( dt ) - 50 );
dt << hide and exclude;
ps = dt << Process Screening( Y( eval(cNames) ), Control Chart Type( "Indiv and MR" ) );
newdt = ps << get data table;
dt << clear rowstates;
Your experiences with JSL will be greatly enhanced if you take the time to read the Scripting Guide.