Tengo problemas importantes al intentar ejecutar una serie de scripts JSL en JMP 14 en la terminal de un compañero que funcionaba en JMP 13. Han surgido los siguientes problemas:
- dt = Current Data Table () solo parece funcionar una vez. Tengo que seguir identificando qué es dt o cambiar dt << a Current Data Table () <<.
- Mi etiqueta BatchID sigue fallando, con el siguiente error:
Fórmula BatchID de columna interrumpida
Nombre No resuelto: Grupo 1 veces En filas: 2 Operación: Grupo, Grupo / * ### * /
Se han ignorado los errores de evaluación de fórmulas - El error anterior ocurre con cada una de las etiquetas grupo / año / semana, si elimino la variable de etiqueta anterior.
Clear Symbols();
//Before running this script, be sure to Recode any problems in the AliasName column.
//Enter the abbreviation for your Group, the year "YY", and the Week # "WW" for the experiment.
New Window("Experiment Details",
<<MODAL></MODAL>Puedo publicar un fragmento de la tabla de datos si es necesario.
Ver código publicado a continuación
Jeff, gracias por el consejo con respecto a la sintaxis, lo incorporaré en futuras secuencias de comandos. Todavía no estoy seguro de qué está sucediendo anteriormente en el script que está causando que la etiqueta BatchId falle. Todavía estoy esperando mi acceso a JMP 14 para poder probar el código en mi propia máquina.
Lamento que tengas dificultades aquí.
En general, no es una buena práctica confiar en Current Data Table () y, por lo general, es bastante fácil de evitar.
En su caso específico, está contando con que el resultado de su división se convierta en la tabla de datos actual. Como ha descubierto, eso no está garantizado.
dt << Split( Split By( :Loops ), Split( :PV ), Group( :Datetime, :BatchID ), Remaining Columns( Keep( :EFT ) ) );
En su lugar, debe capturar el resultado de la división en su variable, dt.
dt = dt << Split(
Split By( :Loops ),
Split( :PV ),
Group( :Datetime, :BatchID ),
Remaining Columns( Keep( :EFT ) )
);
//This sorts the data according to BatchID and then time.
//No longer need to set dt because it's already set above
//dt = Current Data Table();
dt = dt << sort( Replace table, By( BatchID ), Order( Ascending ) );