La expresión de lista solo evalúa el primer valorEstoy tratando de reparar un script que se convirtió en no funcional por el lanzamiento de JMP15.
Tengo una variable Lista que contiene números de columna de interés.
ListofColumns= List(8,12,7,14);
Estoy tratando de generar un conjunto de gráficos de control, en una sola ventana, de cada una de las columnas de la lista:
Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y(eval(ListofColumns)))
);
Cuando ejecuto este código, genera el gráfico de control adecuado para la columna 8, pero ninguno de los otros.
Por otro lado, si pongo manualmente la lista, los cuatro gráficos de control se generan correctamente:
Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y(8,12,7,14))
);
Estoy seguro de que esto solía funcionar con el código antes del generador de gráficos de control. Y también estoy seguro de que me falta algo simple. Agradezco cualquier ayuda!
ScriptingRe: La expresión de lista solo evalúa el primer valorProbé su código de nuevo a JMP 11 y descubrí que el código funcionaba igual. A continuación se muestra lo que considero un trabajo desagradable, y espero que alguien tenga una mejor solución.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/blood pressure.jmp" );
ListofColumns = List( 8, 4, 7, 5 );
Eval(
Parse(
"Win4=Control Chart Builder(
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables(Y( "
|| Substr(
Char( listofcolumns ),
2,
Length( Char( listofcolumns ) ) - 2
) || " )
));"
)
);
Re: La expresión de lista solo evalúa el primer valorGracias por el consejo. Pero terminé tomando un enfoque diferente, recorriendo cada valor en la lista:
For( j = 1, j <= N Items(ListofColumns), j++, //step through the row numbers of interest
WinHandle3 << append (Control Chart( //append the control chart to existing window
Sample Label( :Lot_Number ), // using legacy Control Chart platform allows sample label use
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
ListofColumns[j],
Individual Measurement,
Moving Range
)));
); // close the for loop.
Acabo de agregar cada gráfico a una ventana existente. También cambié a usar la plataforma heredada de Control Chart en lugar del constructor de Gráficos de control (¿mejorado?), Porque quería especificar la etiqueta de muestra en lugar de un número secuencial sin sentido en el eje X. El guión anterior parece funcionar.