Codificación eficiente del estado de filaHola, estoy tratando de descubrir la forma más rápida de cambiar los estados de fila en JSL. Normalmente trato de evitar seleccionar filas porque es más lento que obtener filas where (), pero no veo cómo usar una matriz o una lista de filas para cambiar los estados de las filas. ¿Deben seleccionarse las filas para cambiar el estado?
Pregunta levemente relacionada: ¿La paleta de colores es programable? Veo el cuadro de visualización "colorbox ()", pero el índice de secuencias de comandos dice que solo es accesible por la plataforma. No necesariamente lo necesito, ya que pude encontrar un par de soluciones. Un ejemplo de lo que quiero decir con esto se muestra debajo del código aquí.
Gracias,
Miguel
//Borrar registro(); Nombres predeterminados hasta aquí (1); dt = abierto ("$ SAMPLE_DATA \ Big Class.jmp"); // obtener filas donde; no estoy seguro de qué hacer con este myRows = dt << obtener filas donde (: altura == 63); // usa select where works pero podría ser más lento dt << select where (: height == 63); dt << excluir (1); dt << colores ("Rojo");Paleta de colores, ejemplo de las preferencias del usuario:
Re: codificación de estado de fila eficienteNo tengo una respuesta a su pregunta sobre la paleta de colores, pero ejecuté una rápida selección de dónde vs. Obtenga filas donde y encontró poca diferencia
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
start = HP Time();
For( i = 1, i <= N Rows( dt ), i++,
dt << select where( :NPN1 > :npn1[i] )
);
Show( "select where", Format( (HP Time() - start) / 100, "Hr:m:s" ) );
start = HP Time();
For( i = 1, i <= N Rows( dt ), i++,
dt << select where( :NPN1 > :npn1[i] )
);
Show( "get rows", Format( (HP Time() - start) / 100, "Hr:m:s" ) );
y obtuve los resultados:
"seleccionar dónde"; = "2:51:55";
"obtener filas"; = "2:50:40";
Re: codificación de estado de fila eficienteGracias Jim. El hábito de elegir "obtener" en lugar de "seleccionar" está algo arraigado después de años de resultados de scripts lentos tanto en vba como en jsl, pero supongo que estoy pensando principalmente en casos en los que necesito iterar no solo a través de filas sino a través de cada columna .
Aquí hay un par de escenarios con respecto a los datos de prueba de semiconductores, donde cada fila es un dispositivo probado en producción y cada columna (después de las columnas de índice) es una prueba paramétrica en los dispositivos. Cada columna tiene límites de especificaciones almacenados como una propiedad. Un script recorre y determina, columna por columna, el rendimiento, las consecuencias del lado alto y del lado bajo, etc. (muchas otras cosas, pero eso es irrelevante). Generalmente, con datos de semiconductores, se prueba con parada en el primer fallo, por lo que es posible que falten las columnas a la derecha de un fallo. Si, en cambio, se prueban los datos para continuar en caso de error, sería bueno convertirlos a 'detener en caso de error'. Así que también tengo un script para convertir en datos de detención en el primer error. En ambos casos, cambiar para obtener filas donde () frente a seleccionar donde () mejoró drásticamente el tiempo de ejecución del script. Es posible que sea más rápido usando select where () si la tabla es invisible; No he comprobado esto.
Sin embargo, para los estados de fila, solo se repite una vez, así que ahora que doy un paso atrás y lo pienso, probablemente no sea tan malo.
Aquí hay una captura de pantalla de dos versiones de script para mi script stop on fail. Este cambio marcó una gran diferencia en el tiempo de ejecución.
Y otro tema podría ser por qué lo estoy analizando como una cadena. Tendría que volver atrás y mirar esto de nuevo, pero hace años descubrí que el análisis como una cadena era mucho más rápido, pero eso podría haber sido mientras todavía tenía las declaraciones select where ().

Re: codificación de estado de fila eficienteTambién trabajé en la industria de los semiconductores y descubrí que en muchas de las aplicaciones grandes, mover los datos paramétricos a matrices y usar las diversas funciones de matriz en lugar de tratar con funciones de tabla de datos es un método mucho más rápido.
Re: codificación de estado de fila eficienteSí, tiendo a olvidar eso y me recuerdan de vez en cuando cuando reviso la ayuda en línea de JMP. Probablemente solo utilicé "seleccionar dónde ()" y luego obtuve "filas donde ()" por conveniencia con respecto al manejo de filas excluidas y rápidamente (en cuanto a codificación, no en cuanto a ejecución) agarrando aquellas que están por encima / por debajo de los límites de especificación, aunque Supongo que podría obtener una matriz de columna separada de excluidos () que contenga unos y ceros, y simplemente multiplicar. Siempre que maneje los valores perdidos correctamente, probablemente funcionará bien y se ejecutará rápidamente.