Pregunta de guión de JMP<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Soy un usuario nuevo que intenta aprender el script JMP. Tengo un script muy simple pero encontré un resultado esperado. Puede ser que alguien me pueda dar un indicador de lo que hice mal aquí. Gracias por adelantado. (Por cierto: estoy usando JMP 8.02)
Tengo una tabla muy simple como la siguiente (test1.csv):
| Herramienta_primera | Tool_second | Tiempo de procesamiento | Tool_third | Grupo 1 | Real_beta | Base |
| UNA | do | 4/3/2011 0:53 | mi | AE | 0.0058 | Y |
| UNA | do | 4/3/2011 1:08 | mi | AE | 0.0058 | Y |
| UNA | do | 4/3/2011 5:27 | mi | AE | 0.0058 | Y |
| UNA | do | 4/3/2011 6:26 | mi | AE | 0.0058 | Y |
| UNA | re | 4/3/2011 6:39 | mi | AE | 0.0058 | Y |
| UNA | do | 4/3/2011 6:49 | mi | AE | 0.0058 | Y |
| UNA | do | 4/3/2011 18:43 | mi | AE | 0.0058 | Y |
| UNA | do | 4/3/2011 23:42 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 5:20 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 8:34 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 10:43 | mi | AE | 0.0058 | Y |
| UNA | re | 4/4/2011 11:02 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 13:57 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 14:28 | mi | AE | 0.0058 | Y |
| UNA | re | 4/4/2011 16:43 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 20:01 | mi | AE | 0.0058 | Y |
| UNA | do | 4/4/2011 20:17 | mi | AE | 0.0058 | Y |
| UNA | re | 4/4/2011 21:45 | mi | AE | 0.0058 | Y |
| UNA | do | 5/5/2011 18:20 | mi | AE | 0.0058 | Y |
| UNA | re | 5/5/2011 20:02 | mi | AE | 0.0058 | Y |
| UNA | do | 5/5/2011 20:35 | mi | AE | 0.0058 | Y |
La siguiente secuencia de comandos lee el archivo .csv y agrega dos columnas más a la tabla según la comparación de una fila con su fila anterior. Mi guion esta abajo
Source_Table = Abrir ("c: \ test1.csv");
Source_Table << Sort (By (group_1, process_time), order (Ascendente), Reemplazar tabla);
nueva columna ("Inspect_pt",
fórmula(
si (fila () == 1,1,
(: group_1 [fila ()]! =: group_1 [fila () - 1]), 1,
(: group_1 [fila ()] ==: group_1 [fila () - 1]), 0)));
nueva columna ("tool_Change",
fórmula(
si (fila () == 1,1,
(: tool_second [row ()]! =: tool_second [row () - 1]), 1,
(: tool_second [row ()] ==: tool_second [row () - 1]), 0
)
)
);
show (tabla de datos actual ());
/ * intenta dar salida al valor de las dos últimas columnas * /
para (i = 1, i ,:cambio de herramienta ););
La tabla de resultados está bien, pero la última línea de la secuencia de comandos no devolvió ningún resultado en las dos columnas recién creadas. La ventana de registro mostró que el índice se convierte en: i.
Tabla de salida:
[Falta imagen]
Pero la ventana de registro mostró el resultado de las dos últimas columnas que no se han extraído correctamente. ¿Usé la indexación incorrecta? Registrar salida de ventana aquí:
Tabla de datos actual: DataTable ("test1")
i: 1
Fila: 1
: Inspect_pt [:: i] :. <- esto no es correcto
: tool_Change [:: i] :. <- esto no es correcto
yo: 2
Fila: 2
: Inspect_pt [:: i] :.
: tool_Change [:: i] :.
yo: 3
Fila: 3
: Inspect_pt [:: i] :.
: tool_Change [:: i] :.
yo: 4
Fila: 4
: Inspect_pt [:: i] :.
: tool_Change [:: i] :.
Pregunta de guión de JMPGracias a todos por la valiosa información. Este foro es genial.
Pregunta de guión de JMPEsto es particularmente importante cuando se escriben scripts que usan valores de procesos anteriores para determinar cómo proceder (por ejemplo, Seleccione Where (: tool_change == 1) para subconjuntar). Al insertar una línea de 'Ejecutar fórmulas' al final de un bloque de código como este, le dice a JMP que haga una pausa, evalúe todas las fórmulas pendientes y luego continúe con el resto del script.
No estoy tan familiarizado con el comportamiento de la "fórmula eval" (normalmente uso "fórmulas de ejecución", solo una cuestión de hábito), por lo que esto es una especulación, pero dependiendo de los procesos específicos podría ver diferencias situacionales que favorecerían " eval formula 'over' run formulas '(es decir, cuando solo te importa una fórmula para tomar una decisión, puedes dar instrucciones a esa fórmula para que la evalúe, guardando las evaluaciones de fórmula restantes para más adelante). La diferencia aquí dependerá realmente de cuántas evaluaciones de fórmula necesite hacer y cuándo desea que se realicen.
Pregunta de guión de JMPHola
JMP no termina un "comando" antes de pasar al siguiente: lee el comando "nueva columna" y comienza a ejecutarlo, pero continúa leyendo y ejecutando los siguientes comandos.
Lo que sucede aquí es que los comandos de la "Nueva columna" no se terminan de ejecutar (este tipo de comando, en especial, requiere tiempo porque los gráficos deben actualizarse), antes de que JMP lea la línea final con los comandos de "mostrar", por lo que no hay Valores en las columnas en el momento en que se ejecuta este comando.
O 'vacíe' las fórmulas como se indica arriba o ponga una 'fórmula eval' directamente en el comando 'nueva columna', por ejemplo
nueva columna ("título", numérico, fórmula (: X1 *: X2), fórmula eval);
Hasta donde he entendido, los dos enfoques tienen el mismo efecto.
BR, Marianne
PS: no soy de JMP
Pregunta de guión de JMPHola hy
No estoy seguro exactamente por qué necesita esta declaración; la obtuve del soporte técnico de JMP. Tal vez alguien de JMP podría explicar?
Saludos,
Peter
Pregunta de guión de JMPGracias PMroz. Eso hizo el truco. Para mi propio beneficio, ¿podría explicar qué estaba pasando y por qué se necesita la línea adicional para que esto funcione? Gracias de nuevo
Pregunta de guión de JMPIntente "vaciar" el búfer de fórmulas de JMP con esta declaración:
Source_Table << ejecutar fórmulas;
Agregue esta línea después de las definiciones de la fórmula.