¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?El script de ejemplo que aparece a continuación me proporciona el resumen de 5 números en el formato que necesito. Sin embargo, también me gustaría obtener los límites de especificación para cada parámetro (en Columnas de análisis), LSL y USL, en dos columnas separadas en la tabla de datos final "Resumen". ¿Cómo puedo obtener esto a través de JSL?
Además, ¿existe otra forma mejor de hacer lo que necesito sin usar Tabulate()?
Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group( "Processes" );
(dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( Min ) ),
Column Table( Statistics( Mean, Median ) ),
Column Table( Statistics( Max ) ),
Column Table( Statistics( Std Dev ) ),
Row Table(
Grouping Columns( :lot_id, :wafer, :Wafer ID in lot ID ),
Analysis Columns(
Eval( col_names )
)
)
)
)) << Make Into Data Table;
Automatización y scriptingVentanasRe: ¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?Puedes utilizar el sistema de Gestión de Límites para hacer lo que quieras
Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group( "Processes" );
(tab = dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( Min ) ),
Column Table( Statistics( Mean, Median ) ),
Column Table( Statistics( Max ) ),
Column Table( Statistics( Std Dev ) ),
Row Table(
Grouping Columns( :lot_id, :wafer, :Wafer ID in lot ID ),
Analysis Columns(
Eval( col_names )
)
)
)
)) << Make Into Data Table;
dtTab = current data table();
tab << close window;
procCols = Associative Array(dtTab:Analysis Columns << get values) << get keys;
obj = dt << Manage Limits(
Process Variables ( eval(procCols) )
);
obj << Save to Tall Limits Table;
dtLimits = current data table();
obj << close window;
try( window("Consistency Problem") << close window );
dtTab << Update(
with( dtLimits ),
Match Columns( :Analysis Columns = :Variable ),
Add Columns from Update Table( :LSL, :Target, :USL)
);

Re: ¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?@txnelson Gracias. Me aparece un error en mi JMP 16.2

Re: ¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?Puede ser suficiente si utiliza variables en lugar de depender de la tabla de datos actual. Al menos en JMP17.2, tanto tabulate << make into data table como << save tall limits table devuelven una referencia a la tabla.
Names Default To Here(1);
Clear Log();
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
col_names = dt << Get Column Group("Processes");
tab = dt << Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Statistics(Min)),
Column Table(Statistics(Mean, Median)),
Column Table(Statistics(Max)),
Column Table(Statistics(Std Dev)),
Row Table(
Grouping Columns(:lot_id, :wafer, :Wafer ID in lot ID),
Analysis Columns(
Eval(col_names)
)
)
)
);
dttab = tab << Make Into Data Table;
tab << close window;
procCols = Associative Array(dtTab:Analysis Columns << get values) << get keys;
obj = dt << Manage Limits(Process Variables(Eval(procCols)));
dtlimits = obj << Save to Tall Limits Table;
obj << close window;
Try(Window("Consistency Problem") << close window);
dtTab << Update(
with(dtLimits),
Match Columns(:Analysis Columns = :Variable),
Add Columns from Update Table(:LSL, :Target, :USL)
);Re: ¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?@jthi Me aparece este error en JMP 16.2
Object 'Data Table' does not recognize the message 'Manage Limits'; <BR />perhaps you mean one of these: <<MANAGE spec="" limits=""><<ITEM analysis=""><<FACTOR><<COMBINE columns...=""><<MAKE indicator=""><<NEW><<PASTE columns=""><<MARKERS><<SELECT matching="" cells=""><<GET rows=""><<MAXIMIZE display=""><<MOVE scripts=""><<RENAME table="" script=""><<MATCHED pairs=""><<MULTIVARIATE><<NORMAL mixtures=""><<CAPABILITY><<PARALLEL plot.="" there="" is="" no="" other="" opened="" data="https://community.jmp.com/" to="" update="" the="" current="" table.="" empty=""></PARALLEL></CAPABILITY></NORMAL></MULTIVARIATE></MATCHED></RENAME></MOVE></MAXIMIZE></GET></SELECT></MARKERS></PASTE></NEW></MAKE></COMBINE></FACTOR></ITEM></MANAGE>
Changing Manage Limits () to Manage Spec Limits () gives me another error.
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Neo_0-1726217735617.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1726217735617.png" style="width: 385px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1726217735617.png" style="width: 385px;"><span class="lia-inline-image-display-wrapper" image-alt="Neo_0-1726217735617.png" style="width: 385px;"><img src="https://us.v-cdn.net/6038925/uploads/images/68217i191CDFCAD2681B08/Neo_0-1726217735617.png" role="button" title="Neo_0-1726217735617.png" alt="Neo_0-1726217735617.png" /></span></SPAN></SPAN></SPAN>
Re: ¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?Tal vez esto no funcione en JMP16.2. Debes realizar distintos tipos de comprobaciones para las tablas. Si no recuerdo mal, Get Data Table List() es una opción bastante sólida y la tabla más reciente siempre es la primera.
Re: ¿Cómo obtener límites de especificaciones en columnas separadas en una tabla de resumen de 5 puntos?Cambié el código para eliminar la sección de administración de límites y cambiarlo por un fragmento simple de JSL que crea una tabla de límites leyendo los límites de la tabla original. Vea si esto funciona
Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group( "Processes" );
(tab = dt << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( Min ) ),
Column Table( Statistics( Mean, Median ) ),
Column Table( Statistics( Max ) ),
Column Table( Statistics( Std Dev ) ),
Row Table(
Grouping Columns( :lot_id, :wafer, :Wafer ID in lot ID ),
Analysis Columns(
Eval( col_names )
)
)
)
)) << Make Into Data Table;
dtTab = current data table();
tab << close window;
procCols = Associative Array(dtTab:Analysis Columns << get values) << get keys;
// Create a limits table
dtLimits = new table("Limits",
new column("Variable", character),
new column("LSL"),
New column("Target"),
New column("USL")
);
For Each({col}, procCols,
specs = column(dt, col) << get property("Spec Limits");
if(isList(specs),
dtLimits << add rows(1);
dtLimits:Variable[nrows(dtLimits)] = col;
dtLimits:LSL[nrows(dtLimits)] = specs["LSL"];
dtLimits:Target[nrows(dtLimits)] = specs["Target"];
dtLimits:USL[nrows(dtLimits)] = specs["USL"];
)
);
dtTab << Update(
with( dtLimits ),
Match Columns( :Analysis Columns = :Variable ),
Add Columns from Update Table( :LSL, :Target, :USL)
);