Selección y eliminación de filas duplicadas con condiciónHola chicos,
He buscado en el foro, sin embargo, no me acerqué a lo que quería lograr, o tal vez me lo perdí.

De todos modos, necesito ayuda en la tabla de arriba. Como se puede ver, tengo duplicados resaltados por color. El número de serie es el mismo en su mayor parte porque la pieza se inspecciona en una sección diferente (como se muestra en 1A, 1B, 2A, 2B, 3A, 3B, 4A, 4B). Por lo general, si la pieza no pasa la inspección, se volverá a inspeccionar, lo que se muestra en la columna de nueva prueba (0 para ninguna nueva prueba, 1 para la primera, etc.) Ahora solo puedo diferenciar la parte por el número de repetición de la prueba o la fecha dentro del mismo número de serie, por lo que me gustaría conservar el resultado de la última repetición de la prueba y eliminar los duplicados de la anterior. Es decir, según el cuadro resaltado arriba, para el azul o el rojo, quiero conservar la nueva prueba 1 y eliminar la nueva prueba 0. Esto es un dolor de cabeza para mí, por lo que necesitaría el consejo de la comunidad sobre el script para seleccionar la condición dentro del número de serie y la sección para averiguar la última repetición de la prueba, luego conservar la última repetición de la prueba y eliminar los duplicados anteriores. Espero que todos tengan alguna entrada para esto. Gracias
Re: Seleccionar y eliminar filas duplicadas con condición¡Gran ayuda! ¡Gracias!
Estaba construyendo algo como esto, de alguna manera mi combinación se equivocó en la selección de columnas.
¡Gracias!
Re: Seleccionar y eliminar filas duplicadas con condiciónHice un poco de enmiendas para adaptarme a mi mesa. ¡Gracias!
Re: Seleccionar y eliminar filas duplicadas con condiciónSi tiene una versión anterior de JMP, < puede no estar disponible. Luego intente el siguiente enfoque. El código debe seleccionar y eliminar las filas duplicadas (según el número de serie y la sección coincidentes) con la fecha más antigua. La clasificación no importa.
dt = Current Data Table();
dt << select where(Col Max(:Date, :SerialNo, :Section) > :Date());
dt << delete rows();
Re: Seleccionar y eliminar filas duplicadas con condiciónHay una función llamada
Seleccionar filas duplicadas()
que se puede usar para esto, sin embargo, se basa en encontrar filas que siguen a una fila única.Por lo tanto, la tabla debe ordenarse a la inversa antes de usar la función.A continuación se muestra un script de muestra para hacer esto.Dado que no tenía una tabla de datos de muestra para ejecutar esto, el script no se ha probado, sin embargo, está muy cerca de ser lo que necesita.
La documentación sobre la función se puede encontrar en el índice de secuencias de comandos
- Ayuda==>Secuencias de comandos Indes
Names Default To Here( 1 );
dt = Current Data Table();
// Add a new column to preserve the current order
dt << New Column( "rowNum", formula( Row() ) );
// Remove the formula to convert values to static values
:rowNum << delete property( "formula" );
// Sort the data table in referse order, since one wants to
// keep the most recent value
dt << sort( by( rowNum ), order( descending ), Replace Table( 1 ) );
// Find the duplicate rows
dt << Select Duplicate Rows( Match( :SerialNo, :Date, :Retest ) );
// Delete Duplicates
dt << delete rows;
// Reorder the table
dt << sort( by( rowNum ), order( ascending ), Replace Table( 1 ) );
// Delete rowNum column
dt << delete columns( "rowNum" );