Ejecutando un script varias veces con diferentes entradas.Hola
He escrito un script que obtiene algunos datos, realiza algunas manipulaciones (como ordenar, ordenar, subconjuntos, etc.) y finalmente grafica los datos.
Necesito ejecutar este script varias veces con diferentes entradas. ¿Cómo puedo hacer esto?
Esto es lo que intenté ...
in_list = {};
in_list = Associative array(dtin:input) << get keys //this is to get all inputs into a list
for(i=1,i<NITEMS></NITEMS>
Pero el script se ejecuta solo para la primera entrada.
También guardo cada salida con diferente nombre de archivo.
Re: Ejecutar un script varias veces con diferentes entradas.No codifique el nombre de la tabla en la unión. Utilice un nombre de variable en su lugar. P.ej no use la tabla de datos ("Table Namen1") << Join ("Table Name2", ...), en su lugar use dt << Join (dt2, ...). Si lo hace, puede hacer que las variables de su tabla de datos siempre apunten a la tabla de datos correcta para la iteración del bucle actual.
También debe asegurarse de cerrar las tablas de datos intermedios una vez que ya no las necesite, tal como describió al intentar resolver su problema. Mantenga JMP tan ordenado como sea posible.
Re: Ejecutar un script varias veces con diferentes entradas.Gracias por la respuesta. Después de una mayor depuración, descubrí la causa raíz de mi problema.
Planteamiento del problema: Mientras se ejecuta en el bucle, la opción de entrada se actualiza, pero el gráfico es el mismo para todas las opciones de entrada.
Causa principal: Tengo uniones en el script. Por lo tanto, cada vez que se ejecuta el script, las tablas se guardan con el sufijo 1,2, etc.
Pero como la lógica de unión tiene el nombre de la tabla original, las tablas no se actualizan. Cada vez que las tablas se unen con las tablas originales (tablas creadas en la primera ejecución) y el gráfico de salida es el mismo.
Solución: Intenté probar (close (out_table, no save)) pero sin suerte.
Cualquier ayuda en este sentido es apreciada.
Re: Ejecutar un script varias veces con diferentes entradas.Realmente no deberías necesitar tal cosa. Si está dispuesto a publicar un script más completo, puedo ayudarlo a determinar dónde está su problema. Stop () termina completamente la ejecución de todo el script. Break () termina la ejecución de un bucle. Continuar () es casi exactamente lo que describiste; rompe la iteración actual y vuelve a la parte superior del bucle.
Re: Ejecutar un script varias veces con diferentes entradas.Gracias por la respuesta.
Pensé que tengo un stop () en una sentencia if dentro del bucle for que está causando problemas.
Se reemplazó con continue (), pero eso no resuelve el problema.
¿Hay alguna función que pueda detener solo la iteración actual y continuar con la siguiente?
Gracias
Re: Ejecutar un script varias veces con diferentes entradas.Le falta un punto y coma en la segunda línea, pero supongo que tiene uno en su script real. El problema probablemente se encuentra en el lado de tu bucle (por cierto, el segundo argumento de tu bucle for probablemente debería ser "<=" en lugar de "<" o perderás el último elemento de tu lista). Aquí hay un ejemplo muy simple de un script de trabajo que utiliza su enfoque:
Primero, hice una tabla para obtener algunas entradas:
Luego ejecuto este script:
dt = Current Data Table();
in_list = Associative Array(dt:input) << get keys;
for(i=1, i<=N Items(in_list), i++,
Print(in_list[i]);
);
Aquí está la salida del registro:
Podría ayudarlo a escribir una función que pueda evaluar dentro del bucle con diferentes valores para los argumentos cada vez. Esto le permitirá desarrollar y probar la función en el exterior del bucle para que sea más fácil de solucionar.