Supprimer les données en double de la table à l'aide de l'horodatageJe m'excuse, je sais que cette question a été posée plusieurs fois sur ce forum mais je n'ai pas réussi à trouver de solution à mon problème.
J'ai un grand ensemble de données d'environ 24 000 lignes de données de test. Notre processus consiste à exécuter une validation en 5 étapes sur 5 matrices et une fois que nous obtenons les résultats, nous commençons les tests, ce qui signifie en fin de compte que je vais avoir des données répétées sur ces 5 sites.Cette validation en 5 étapes vérifie les points de contact ce qui aboutit parfois à démonter notre matériel de test et à le remonter. Je cherche à exclure les données en double du 1er test (atterrissage). Nos tests sont horodatés afin qu’il soit facile de distinguer les anciens des nouveaux. Si quelqu'un a une excellente solution à mon problème, je suis tout ouïe. Ci-joint le tableau de données dans lequel j'essaie de supprimer les doublons.
Merci,
Yng
Re : Supprimer les données en double de la table à l'aide de l'horodatageBonjour M. txnelson ,
J'ai pensé que je pourrais vous contacter ici au lieu de créer un nouveau fil de discussion. J'ai besoin d'aide pour calculer les rendements et générer une liste de sélection/une carte de tranches à l'aide de la table de sortie du script que vous avez fourni pour supprimer les données en double. J'ai parcouru les forums communautaires et trouvé un message qui a été lancé en 2016 d'après ce que je peux voir. C'est quelque peu déroutant et difficile à suivre avec toutes les variables de sortie et autres. J'avais joint les tableaux qui constituent le résultat final.
J'ai essayé d'utiliser split, stack, tabulate, summary et je n'arrive pas à trouver de solution. J'ai en fait deux tables distinctes identiques à l'exception d'une colonne nommée :trmode. Comme je l'ai mentionné, j'essaie d'exécuter une analyse de rendement, puis de créer une liste de sélection et une carte de plaquettes. En fait, j'ai une autre table test_output sur laquelle je travaille actuellement en utilisant les outils que vous m'avez fournis, messieurs.
dummy_data_tx : test_output a des limites de spécifications de (LSL = 20 et USL = 40) pour chaque canal
dummy_data_rx : test_output a des limites de spécifications de (LSL = 15 et USL = 35) pour chaque canal
dummy_data_dc : test_output a des limites de spécifications de - (ayant en fait des problèmes avec la suppression des données en double avec ce test.
set_id (7000) - VDD_Dig (LSL = 0,03 et USL = 0,06)
set_id (7100) - VDD_Dig (LSL = 0,03 et USL = 0,06)
set_id (7200) - VDD_Dig (LSL = 0,03 et USL = 0,06)
Toute aide que vous pourrez me donner à nouveau est grandement appréciée.
set_id (7000) - ANALOGIQUE (LSL = 0,03 et USL = 0,07)
set_id (7100) - VDD_Dig (LSL = 0,2 et USL = 1)
set_id (7200) - VDD_Dig (LSL = 0,15 et USL = 0,35)
Re : Supprimer les données en double de la table à l'aide de l'horodatageMerci txnelson ,
Je vais essayer cela ce matin et je l'intégrerai dans mon script pull/manipulation de table de serveur.
Encore très apprécié..
Re : Supprimer les données en double de la table à l'aide de l'horodatageJ'ai repensé la question et j'ai trouvé une méthodologie totalement.Ce code fonctionnera pour les plaquettes
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 : Supprimer les données en double de la table à l'aide de l'horodatageTxnelson,
Encore une question concernant la suppression des données en double. J'ai oublié de mentionner que je fais une extraction de données globale qui inclut toutes les tranches afin de pouvoir effectuer une distribution globale et une analyse de test t unidirectionnelle.
Le tableau de données que j'ai joint n'était que les données de test pour une plaquette.Où dans le script devrais-je mettre le wafer_number ? Est-ce que je l'inclurais dans la partie summary() ?
J'ai joint le nouveau tableau de données pour référence.
J'ai dû supprimer l'autre car on m'a fait remarquer que j'avais mon script SQL qui était extrait de nos serveurs...
Re : Supprimer les données en double de la table à l'aide de l'horodatageOups... ça devrait être un 1 et non un neufRe : Supprimer les données en double de la table à l'aide de l'horodatageJe suis curieux! Je suis ingénieur industriel et le codage est très difficile pour moi. If() et For() m'ont lancé dans une boucle (pardonnez le jeu de mots) depuis le début. Comment avez-vous pu déterminer que 9 était le nombre ?
Merci encoreRe : Supprimer les données en double de la table à l'aide de l'horodatageMerci beaucoup! Je suis absolument étonné par les compétences que vous avez en matière de script. Ici, je pensais que ce serait un script élaboré qui accomplirait cela et vous parvenez à l'obtenir en 10 lignes.
Vous et M. gzmorgan0 ont été extrêmement utiles..
Remarque : mon entreprise a un bon de commande dans le cycle qui nous donne JMP 14, ce qui me rend super excité.
Merci encore M. txnelson ..
Yng (plus si Yng)
Re : Supprimer les données en double de la table à l'aide de l'horodatageJe pense que cela fera l'affaire... il trouve simplement toutes les lignes d'un RowCol donné qui ont un horodatage (ts) inférieur à l'horodatage maximum pour ce RowCol, puis les supprime.Le traitement prend quelques minutes, mais cela semble fonctionner
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 : Supprimer les données en double de la table à l'aide de l'horodatageDésolé pour ça.. J'ai supprimé les colonnes inutiles et les ai rattachées.
test_output sont les données dont j'ai besoin. RowCol est l'identifiant des appareils que je teste.
J'ai joint le tableau récapitulatif des RowCol {r2c3sr1sc1, r2c8sr1sc1, r4c5sr1sc1, r7c3sr1sc1, r7c8sr1sc1} contenant les données en double. Je dois supprimer les tests initiaux de ces appareils de l'ensemble de données. Ils peuvent avoir l'horodatage le plus ancien. Ces 5 appareils sont utilisés dans chaque configuration, ce qui m'obligera à les supprimer de chaque test_output.
Re : Supprimer les données en double de la table à l'aide de l'horodatageJ'ai du mal à identifier, à partir de votre tableau de données ci-joint, les lignes contenant les données du test 1 que vous souhaitez supprimer.Pourriez-vous s'il vous plaît fournir les numéros de ligne pour 1 ou deux cas qui représentent les données cibles ?