Eliminar datos duplicados de la tabla usando la marca de tiempoPido disculpas, sé que esta pregunta se ha hecho varias veces en este foro pero no he podido encontrar una solución a mi problema.
Tengo un gran conjunto de datos, aproximadamente 24.000 filas de datos de prueba. Nuestro proceso consiste en ejecutar una validación de 5 pasos en 5 matrices y una vez que obtenemos los resultados comenzamos a realizar las pruebas, lo que en última instancia significa que tendré datos repetidos en esos 5 sitios.Esta validación de 5 pasos verifica los puntos de contacto, lo que a veces resulta en derribar nuestro equipo de prueba y volver a configurarlo. Estoy buscando excluir los datos duplicados de la primera prueba (aterrizaje). Nuestras pruebas tienen marca de tiempo para que sea fácil distinguir entre las antiguas y las nuevas. Si alguien tiene una gran solución a mi problema, soy todo oídos. Se adjunta la tabla de datos donde intento eliminar los duplicados.
Gracias,
yng
Re: Eliminar datos duplicados de una tabla usando marca de tiempoBuenas tardes Sr. txnelson ,
Pensé que podría comunicarme con usted aquí en lugar de crear un hilo nuevo. Necesito ayuda para calcular los rendimientos y generar una lista de selección/mapa de oblea utilizando la tabla de salida del script que usted proporcionó para eliminar los datos duplicados. Revisé los foros de la comunidad y encontré una publicación que se inició en 2016, por lo que puedo ver. Es algo confuso y difícil de seguir con todas las variables de salida y demás. He adjuntado las tablas que son el resultado final.
Intenté usar dividir, apilar, tabular, resumir y parece que no puedo encontrar una solución. De hecho, tengo dos tablas separadas que son idénticas excepto por una columna llamada: trmode. Como mencioné, estoy intentando ejecutar un análisis de rendimiento y luego crear una lista de selección y un mapa de oblea. De hecho, tengo otra tabla test_output en la que estoy trabajando actualmente usando las herramientas que ustedes, caballeros, me han proporcionado.
dummy_data_tx: test_output tiene límites de especificación de (LSL = 20 y USL = 40) para cada canal
dummy_data_rx: test_output tiene límites de especificación de (LSL = 15 y USL = 35) para cada canal
dummy_data_dc: test_output tiene límites de especificaciones de (en realidad tiene problemas para eliminar los datos duplicados con esta prueba).
set_id (7000) - VDD_Dig (LSL = 0,03 y USL = 0,06)
set_id (7100) - VDD_Dig (LSL = 0,03 y USL = 0,06)
set_id (7200) - VDD_Dig (LSL = 0,03 y USL = 0,06)
Cualquier ayuda que puedas brindarme nuevamente, es muy apreciada.
set_id (7000) - ANALÓGICO (LSL = 0,03 y USL = 0,07)
set_id (7100) - VDD_Dig (LSL = 0,2 y USL = 1)
set_id (7200) - VDD_Dig (LSL = 0,15 y USL = 0,35)
Re: Eliminar datos duplicados de una tabla usando marca de tiempoGracias txnelson ,
Voy a probar esto esta mañana y lo incorporaré en la manipulación de tablas/script de extracción de mi servidor.
Muy apreciado de nuevo..
Re: Eliminar datos duplicados de una tabla usando marca de tiempoRepensé el tema y se me ocurrió una metodología totalmente.Este código funcionará para obleas.
Names Default To Here( 1 );
dt = Current Data Table();
// Summarize the data to find the maximum :ts for each wafer/rowcol
dtSum = dt << Summary(
Group( :wafer_number, :RowCol ),
Max( :ts ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
link to original table( 0 )
);
// Join the data together matching only where the max :ts for each
// wafer/rowcol
dtFinal = dt << Join(
With( dtSum ),
Merge Same Name Columns,
By Matching Columns( :wafer_number = :wafer_number, :RowCol = :RowCol, :ts = :ts ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 )
);
dtSum << delete columns("N Rows");
Close( dtSum, nosave );
// Delete all rows that do not match the maximum value of :ts within
// each Wafer, RowCol
dtFinal << select where( Not( :Match Flag == 3 ) );
dtFinal << delete rows;
// Get rid of the Match Flag column which is an artifact of the Join
dtFinal << delete columns("Match Flag");Re: Eliminar datos duplicados de una tabla usando marca de tiempotxnelson,
Una pregunta más sobre la eliminación de datos duplicados. Olvidé mencionar que hago una extracción general de datos que incluye todas las obleas para poder realizar una distribución general y un análisis de prueba t unidireccional.
La tabla de datos que adjunté eran solo los datos de prueba para una oblea.¿En qué parte del script pondría el número_oblea? ¿Lo incluiría en la parte de resumen()?
Adjunto la nueva tabla de datos como referencia.
Tuve que eliminar el otro porque me señalaron que tenía mi script SQL extraído de nuestros servidores...
Re: Eliminar datos duplicados de una tabla usando marca de tiempoUps... eso debería ser un 1, no un nueve.Re: Eliminar datos duplicados de una tabla usando marca de tiempo¡Tengo curiosidad! Soy Ingeniero Industrial y codificar se me hace muy difícil. If() y For() me han dejado perplejo (perdón por el juego de palabras) desde el principio. ¿Cómo pudiste determinar 9 como número?
Gracias de nuevoRe: Eliminar datos duplicados de una tabla usando marca de tiempo¡Muchas gracias! Estoy absolutamente sorprendido por la habilidad que tienen ustedes, caballeros, con respecto a las secuencias de comandos. Aquí estaba pensando que iba a ser un guión elaborado que lograría esto y logras obtenerlo en 10 líneas.
Usted y el Sr. gzmorgan0 han sido de gran ayuda..
Nota al margen: mi empresa tiene una orden de compra en el ciclo que nos da JMP 14, lo que me emociona mucho.
Gracias de nuevo Sr. txnelson ..
Yng (ya no tan Yng)
Re: Eliminar datos duplicados de una tabla usando marca de tiempoCreo que esto funcionará... simplemente encuentra todas las filas para un RowCol determinado que tienen una marca de tiempo menor que la marca de tiempo máxima para ese RowCol y luego las elimina.Tarda un par de minutos en procesarse, pero parece funcionar.
Names Default To Here( 1 );
dt = Current Data Table();
// remove formula leaving static data
try(dt:RowCol << delete formula);
Summarize( dt, byGroup = by( "RowCol" ) );
For( i = 1, i <= N Items( byGroup ), i++,
theRows = dt << get rows where( dt:RowCol == byGroup[i] & :ts < Col Max( dt:ts, :RowCol ) );
If( N Rows( theRows ) > 1,
dt << delete rows( theRows )
);
);
Re: Eliminar datos duplicados de una tabla usando marca de tiempoLo lamento.. Eliminé las columnas innecesarias y las volví a adjuntar.
test_output son los datos que necesito. RowCol es el identificador de los dispositivos que estoy probando.
Adjunto la tabla resumen del RowCol {r2c3sr1sc1, r2c8sr1sc1, r4c5sr1sc1, r7c3sr1sc1, r7c8sr1sc1} tengo los datos duplicados. Necesito eliminar las pruebas iniciales de esos dispositivos del conjunto de datos. Pueden tener la marca de tiempo más temprana. Estos 5 dispositivos se utilizan en cada configuración, lo que requerirá que los elimine de cada salida de prueba.
Re: Eliminar datos duplicados de una tabla usando marca de tiempoTengo problemas para identificar en la tabla de datos adjunta las filas que contienen los datos de la Prueba 1 que desea eliminar.¿Podría proporcionar los números de fila para uno o dos casos que representen los datos de destino?