Límites de control codificados de un archivo de referenciaMi script estaba funcionando bien antes de agregar una nueva fase con límites actualizados al archivo de límites de control. Ahora los límites están revueltos. He revisado cuatro veces el archivo de límites de control para asegurarme de que estén en el orden correcto. ¿Alguna idea de lo que podría estar causando la confusión? Estoy experimentando este mismo problema en varias tablas de productos. He intentado asignar el orden de valor y activar los niveles de orden de fila, ninguno ha funcionado.
dt_limits = Open( "R:\Research\PS5\Control_Limits\PMC013\PMC013 Metrology CLs Review.jmp" );
dt_limits << Sort( By( :Quarter ), Order( Ascending ), Replace Table );
dt = Open( "R:\Research\PS5\Control_Limits\JMP SPC files\PMC013 SPC Charts.jmp" );
En la imagen adjunta, los límites para la fase "4 2015" pertenecen a la fase "3 2018"

Re: límites de control codificados de un archivo de referenciaHe probado ambas soluciones. La segunda solución creó un gráfico con JMP creado límites en lugar de usar el archivo de límites. La designación de resumen no hizo una diferencia notable.
He "solucionado" este problema en otros gráficos, ya sea asignando / eliminando el orden de los valores y / o los niveles de orden de las filas, pero este sigue siendo codificado.
Yendo línea por línea, los límites se aplican en el orden: 1, 1 2016, 2 2015, 2 2017, y así sucesivamente.
Re: límites de control codificados de un archivo de referenciaTu código se ve bien. Si una Metrología [i] tiene uno o más trimestres faltantes, el bucle de conteo For j podría estar desactivado.
¿Has usado el depurador?
Los únicos cambios que podría hacer es especificar la tabla x para resumir
summarize( yTables[i], phaselevels=By(:Quarter) )
Además, en lugar de contar los límites de tiempo en "For j-loop", podría usar el código para que coincida con los límites,
dt_limits << Sort( By( :Quarter, :_LimitsKey ), Order( Ascending, Ascending ), Replace Table );
//other code not shown
For( j = 1, j <= N Items( phaseLevels ), j++,
km = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_Mean");
kl = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_LCL");
ku = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_UCL");
ks = dt_limits << get rows where(:Quarter == phaseLevels[j] & :_LimitsKey=="_Std Dev");
Insert Into(
imExpr,
Eval Expr(
Phase Level(
Expr( phaseLevels[j] ),
Sigma( Expr( sigma[ks] ) ),
Avg( Expr( avg[km] ) ),
LCL( Expr( lcl[kl] ) ),
UCL( Expr( ucl[ku] ) )
)
)
)
);Espero que ayude.
Re: límites de control codificados de un archivo de referenciaAquí está el script completo menos la marca de la fila al principio:
dt_limits = Open( "R:\Research\PS5\Control_Limits\PMC013\PMC013 Metrology CLs Review.jmp" );
dt_limits << Sort( By( :Quarter ), Order( Ascending ), Replace Table );
dt = Open( "R:\Research\PS5\Control_Limits\JMP SPC files\PMC013 SPC Charts.jmp" );
Metrology = dt_limits << get column names( numeric, continuous, string );
yTables = {};
rpt = New Window( "SPC",
<<ONCLOSE></ONCLOSE>
Las muestras están etiquetadas por número de lote. La tabla completa se clasifica en orden ascendente por Trimestre y luego el Número de Lote antes de que se ejecute el script anterior. He adjuntado una imagen del archivo de límites de control.

Las únicas opciones de clasificación que tengo son ascendentes y descendentes, a menos que me esté perdiendo algo.
Re: límites de control codificados de un archivo de referencia¿Está utilizando una variable para la etiqueta de muestra? ¿Qué es? El orden de clasificación (Trimestre) se parece al Trimestre, que no es cronológico sino alfabético. ¿Es este el orden que querías?
Lo siento sin una vista del archivo de límites ordenados y el script (guardar script desde el gráfico de control), todo lo que puedo hacer es especular.