Currently, only one set of spec limits are allowed per column.
However, using JSL, multiple spec limits can be woven into a script that can loop through a data table pulling out each subgroup one at a time, applying the spec limits for the subset and then running the analysis. Here is a simple example.
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dtLimits = New Table( "Limits",
New Column( "Group", character, values( {"F", "M"} ) ),
New Column( "USL", values( {66, 70} ) ),
New Column( "Target", values( {61, 64} ) ),
New Column( "LSL", values( {52, 51} ) )
);
groups = Associative Array( dt:sex ) << get keys;
nw = New Window( "Distributions", hlb = H List Box() );
For Each( {level}, groups,
dt << select where( :sex == level );
dtSub = dt << subset( selected columns( 0 ), selecte rows( 1 ), output table( level ), invisible );
theRow = (dtLimits << get rows where( :group == level ))[1];
Eval(
Eval Expr(
dtSub:height << set property(
"spec limits",
{LSL( Expr( dtLimits:LSL[theRow] ) ), USL( Expr( dtLimits:USL[theRow] ) ),
Target( Expr( dtLimits:Target[theRow] ) ), Show Limits( 1 )}
)
)
);
hlb << append(
dis = dtSub << Distribution( Continuous Distribution( Column( :height ), Process Capability( 0 ) ) );
Report( dis )[Outline Box( 2 )] << set title( "Height=" || level )
;
);
);
Jim