Löschen Sie doppelte Daten mithilfe des Zeitstempels aus der TabelleEs tut mir leid, ich weiß, dass diese Frage in diesem Forum schon einige Male gestellt wurde, aber ich konnte keine Lösung für mein Problem finden.
Ich habe einen großen Datensatz mit ca. 24.000 Zeilen Testdaten. Unser Prozess besteht darin, eine 5-stufige Validierung auf 5 Chips durchzuführen und sobald wir die Ergebnisse erhalten, beginnen wir mit dem Testen, was letztendlich bedeutet, dass ich auf diesen 5 Standorten wiederholte Daten haben werde.Diese 5-stufige Validierung überprüft die Kontaktpunkte, was manchmal dazu führt, dass unsere Testausrüstung abgebaut und wieder aufgebaut wird. Ich möchte die doppelten Daten vom 1. Test (Touchdown) ausschließen. Unsere Tests sind mit einem Zeitstempel versehen, sodass Sie leicht zwischen alt und neu unterscheiden können. Wenn jemand eine tolle Lösung für mein Problem hat, bin ich ganz Ohr. Im Anhang ist die Datentabelle, in der ich versuche, die Duplikate zu entfernen.
Danke schön,
Yng
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenGuten Tag Herr txnelson ,
Ich dachte, ich könnte mich hier an Sie wenden, anstatt einen neuen Thread zu erstellen. Ich benötige Hilfe bei der Berechnung der Erträge und beim Erstellen einer Auswahlliste/Waferkarte mithilfe der Ausgabetabelle des von Ihnen bereitgestellten Skripts zum Löschen der doppelten Daten. Ich habe die Community-Foren durchgesehen und einen Beitrag gefunden, der, soweit ich sehen kann, bereits im Jahr 2016 begonnen wurde. Es ist etwas verwirrend und mit all den Ausgabevariablen usw. schwer zu verstehen. Ich habe die Tabellen angehängt, die die endgültige Ausgabe darstellen.
Ich habe versucht, Teilen, Stapeln, Tabulieren und Zusammenfassen zu verwenden, komme aber scheinbar nicht zu einer Lösung. Ich habe tatsächlich zwei separate Tabellen, die bis auf eine Spalte namens :trmode identisch sind. Wie bereits erwähnt, versuche ich, eine Ertragsanalyse durchzuführen und dann eine Auswahlliste und eine Wafer-Karte zu erstellen. Ich habe tatsächlich eine andere test_output-Tabelle, an der ich gerade mit den Tools arbeite, die Sie mir zur Verfügung gestellt haben, meine Herren.
dummy_data_tx: test_output hat Spezifikationsgrenzen von (LSL = 20 und USL = 40) für jeden Kanal
dummy_data_rx: test_output haben Spezifikationsgrenzen von (LSL = 15 und USL = 35) für jeden Kanal
dummy_data_dc: test_output hat Spezifikationsgrenzen von- (tatsächlich gibt es Probleme beim Löschen der doppelten Daten mit diesem Test.)
set_id (7000) – VDD_Dig (LSL = 0,03 und USL = 0,06)
set_id (7100) – VDD_Dig (LSL = 0,03 und USL = 0,06)
set_id (7200) – VDD_Dig (LSL = 0,03 und USL = 0,06)
Für jede Hilfe, die Sie mir noch einmal geben können, bin ich sehr dankbar.
set_id (7000) – ANALOG (LSL = 0,03 und USL = 0,07)
set_id (7100) – VDD_Dig (LSL = 0,2 und USL = 1)
set_id (7200) – VDD_Dig (LSL = 0,15 und USL = 0,35)
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenDanke txnelson ,
Ich werde das heute Morgen ausprobieren und es in mein Server-Pull-Skript/die Tabellenmanipulation integrieren.
Wieder sehr geschätzt..
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenIch habe das Thema noch einmal überdacht und eine völlig neue Methodik entwickelt.Dieser Code funktioniert für Wafer
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");Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenTxnelson,
Noch eine Frage zum Entfernen doppelter Daten. Ich habe vergessen zu erwähnen, dass ich einen pauschalen Datenabruf durchführe, der alle Wafer umfasst, damit ich eine Gesamtverteilung und eine Einweg-T-Test-Analyse durchführen kann.
Die Datentabelle, die ich angehängt habe, enthielt nur die Testdaten für einen Wafer.Wo im Skript würde ich die Wafernummer einfügen? Würde ich es in den summary()-Teil aufnehmen?
Ich habe die neue Datentabelle als Referenz beigefügt.
Ich musste das andere löschen, weil mir gesagt wurde, dass ich mein SQL-Skript habe, das von unseren Servern zieht ...
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenUps....das sollte eine 1 sein, keine NeunBetreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenIch bin neugierig! Ich bin Wirtschaftsingenieur und das Programmieren fällt mir sehr schwer. If() und For() haben mich von Anfang an in eine Schleife gebracht (verzeihen Sie das Wortspiel). Wie konnten Sie die Zahl 9 ermitteln?
Danke noch einmalBetreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenVielen Dank! Ich bin absolut erstaunt über die Fähigkeiten, die Sie in Bezug auf das Schreiben von Skripten haben. Hier dachte ich, dass es ein aufwändiges Skript sein würde, das dies bewerkstelligen würde, und dass man es schafft, es in 10 Zeilen hinzubekommen.
Sie und Mr. gzmorgan0 waren äußerst hilfreich..
Randbemerkung: Mein Unternehmen hat eine Bestellung im Zyklus, die uns JMP 14 beschert, was mich sehr begeistert.
Nochmals vielen Dank, Herr. txnelson ..
Yng (nicht mehr so Yng)
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenIch denke, das wird den Zweck erfüllen ... es findet einfach alle Zeilen für eine bestimmte RowCol, deren Zeitstempel (ts) kleiner als der maximale Zeitstempel für diese RowCol ist, und löscht sie dann.Die Verarbeitung dauert ein paar Minuten, aber es scheint zu funktionieren
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 )
);
);
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenDas tut mir leid.. Ich habe die unnötigen Spalten gelöscht und wieder angehängt.
test_output sind die Daten, die ich brauche. RowCol ist die Kennung der Geräte, die ich teste.
Ich habe die Übersichtstabelle der RowCol {r2c3sr1sc1, r2c8sr1sc1, r4c5sr1sc1, r7c3sr1sc1, r7c8sr1sc1} mit den doppelten Daten angehängt. Ich muss die ersten Tests dieser Geräte aus dem Datensatz löschen. Sie können den frühesten Zeitstempel haben. Diese 5 Geräte werden in jedem Setup verwendet, weshalb ich sie aus jedem test_output entfernen muss.
Betreff: Doppelte Daten mithilfe des Zeitstempels aus der Tabelle löschenIch habe Probleme, anhand Ihrer angehängten Datentabelle die Zeilen zu identifizieren, die die Daten für Test 1 enthalten, die Sie gelöscht haben möchten.Könnten Sie bitte die Zeilennummern für ein oder zwei Fälle angeben, die die Zieldaten darstellen?