- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
how to calculate yield for many columns with embedded spec limits
Hi,
I have over 60 columns where individual spec limits are embeded in column properties. I like to calculate the yield for each row as Pass/Fail. I appreciate any script that will do this. I checked the JMP discussion and found one script that does yield but each columns is assumed to be pass or fail (1 or 0). Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
Thanks, can't wait to test it out!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
Jim,
This script has been in the forum for quite a while. I like it, and for 50 or 60 columns it works well. I recently attempted to yield a set of PCM test structures where I have well over 1000 columns. I found the MIN() formula seems to be breaking. Do you have any idea on column limits or other variable limits that may be limiting how many arguments i can use in the formula? Your thoughts would be appreciated
Thanks,
Russ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
Thanks Jim. I ran the script and ColNamesList is not defined and got an error. The yield table is created.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
My error, add this line
colNamesList={"Parm 1","Parm 2"};
before the setPassFail Function definition.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
Thanks Jim. It works now. This is a great script. It can be generalized to many columns. I will play with it more. Thanks again.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
This script is proving very useful. Thanks. Found one thing that I have not been able to correct myself yet. If there is a missing value the script marks it as a pass when it inverts the selection and assigns a value of 1. I'd prefer it to assign "Missing" but everything I've tried is coming up short.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
This script will asign "Missing" in the final "Row Pass/Fail" column if 1 or more values are missing.
foundCols = "";
// Loop across the columns and generate the test pass/fails
For( i = 1, i <= N Items( colList ), i++,
spec = Column( EVALdt, colList[i] ) << get property( "Spec Limits" );
EVALdt << clear select;
If( Is Empty( spec ) == 0,
EVALdt << New Column( (Column( EVALdt, colList[i] ) << get name) || " Pass/Fail" );
If( Is Missing( Try( spec["LSL"], . ) ) == 0,
EVALdt << select where( As Column( EVALdt, colList[i] ) < spec["LSL"] );
Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt << get selected rows] = 0 );
);
If( Is Missing( Try( spec["USL"], . ) ) == 0,
EVALdt << select where( As Column( EVALdt, colList[i] ) > spec["USL"], current selection( "extend" ) );
Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt << get selected rows] = 0 );
);
EVALdt << select where( IsMissing( As Column( EVALdt, colList[i] ) ), current selection( "extend" ) );
EVALdt << invert row selection;
Try( Column( EVALdt, N Cols( EVALdt ) )[EVALdt << get selected rows] = 1 );
Column( EVALdt, N Cols( EVALdt ) ) << set property( "Value Labels", {0 = "Fail", 1 = "Pass"} );
If( foundCols == "",
foundCols = ":Name(\!"" || (Column( EVALdt, colList[i] ) << get name) || " Pass/Fail\!")",
foundCols = foundCols || ", " || ":Name(\!"" || (Column( EVALdt, colList[i] ) << get name) || " Pass/Fail\!")"
);
);
);
// Create the Row Missing/Pass/Fail
Eval( Parse( "EVALdt << New Column( \!"Row Pass/Fail\!", formula( If( N Missing("||foundCols||") > 1, \!"Missing\!", Min(" || foundCols || " ) == 1, \!"Pass\!", \!"Fail\!" ) ))" ) );
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: how to calculate yield for many columns with embedded spec limits
Great script, very helpful. Wondering if this could be adapted to add a 3rd category where the data is missing?
Slán
SpannerHead
- « Previous
-
- 1
- 2
- Next »