<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Meine Daten sind in Spalten wie folgt angeordnet:
Wafernummer, Protokollnummer, Prüflings-ID, Teststunde, Parameter 1, Parameter 2 ........
Ich habe eine Reihe von Spezifikationen, die ich anwenden möchte, um alle DUTs zu identifizieren, die bei Hour of Test = 0 ausfallen. Sobald diese DUTs identifiziert wurden, möchte ich alle Instanzen derselben DUTs entfernen. Ich möchte jedoch nicht, dass derselbe Satz von Spezifikationen auf alle anderen Teststundendaten angewendet wird.
Ich ging so weit, eine andere Tabelle im gleichen Format zu generieren, wobei alle t = 0-Fehler identifiziert wurden. Jetzt möchte ich die Protokoll-Nr., Die Prüflings-ID eingeben und alle Instanzen (alle nachfolgenden Teststunden) der ausgefallenen Prüflinge aus der ursprünglichen Tabelle entfernen. Wie mache ich es?
(Hier ist eine leichte Variation von Martins Ansatz oben).
Wenn Sie unterschiedliche Grenzwerte für Werte in einer einzelnen Spalte haben, empfiehlt es sich im Allgemeinen, die Daten aufzuteilen, damit Sie die erforderlichen Grenzwerte als Spalteneigenschaften speichern können. Wenn Sie jedoch Gründe haben, dies nicht zu tun, ist der folgende Ansatz eine Möglichkeit, das zu tun, was Sie meiner Meinung nach wollen. Schneiden Sie den Code aus, fügen Sie ihn in ein Editorfenster ein und wählen Sie "Bearbeiten> Skript ausführen". (Mit den Befehlen 'Wait ()' können Sie sehen, was passiert).
NamesDefaultToHere ( 1 ) ;
// Beispieltabelle
dt =
Neue Tabelle ( "DUT" .
Zeilen hinzufügen ( 12 ) .
Neue Spalte ( "Prüfling-ID" .
Numerisch .
"Nominal" .
Format ( "Beste" . 12 ) .
Werte setzen ( [ 1 . 2 . 3 . 4 . 1 . 2 . 3 . 4 . 1 . 2 . 3 . 4 ] )
) .
Neue Spalte ( "Teststunde" .
Numerisch .
"Ordinal" .
Format ( "Beste" . 12 ) .
Werte setzen ( [ 0 . 0 . 0 . 0 . 1 . 1 . 1 . 1 . 2 . 2 . 2 . 2 ] )
) .
Neue Spalte ( "p1" .
Numerisch .
"Kontinuierlich" .
Format ( "Feste Dez" . 12 . 3 ) .
Werte setzen (
[ 0,299525242746479 . 1.0633718409566 . 0,507859846881073 .
- 1.11573907805173 . 0.222826061547355 . - 0,318546800557343 .
- 0,0356930503397689 . 0,661572077447882 . - 0,182884744578411 .
- 0,930044642545168 . 0,767786562806245 . - 0,130135490980355 ]
)
) .
Neue Spalte ( "p2" .
Numerisch .
"Kontinuierlich" .
Format ( "Feste Dez" . 12 . 3 ) .
Werte setzen (
[ 0,967955026618985 . - 1.05625737545624 . 0,399938006086842 .
- 0,0459988344031106 . - 1.30650202283731 . 1.66536579742163 .
1.19669670020495 . - 0.205442597157623 . - 1.40714522703899 .
0,517030195850593 . - 0,51315580063705 . - 1.17294833449061 ]
)
)
) ;
// Angenommen, Werte von 'pi' <0,5 bei 'Teststunde' = 0 definieren einen Fehler -
// Dann wähle die entsprechenden Zeilen in dt:
Warten ( 1 ) ;
dt << clearSelect () ;
dt << selectWhere ( : p1 < 0,5 & : Teststunde == 0 ) ;
// Markiere die Spalte 'Prüfling-ID'
Warten ( 1 ) ;
Säule ( dt . "Prüfling-ID" ) << setSelected ( 1 ) ;
// Erweitern Sie die Auswahl, um alle Zeilen zu umfassen, die einem fehlerhaften DUT zugeordnet sind
Warten ( 1 ) ;
dt << selectMatchingCells ;
// Deaktivieren Sie die Spalte
Warten ( 1 ) ;
Säule ( dt . "Prüfling-ID" ) << setSelected ( 0 ) ;
// Löschen Sie die Zeilen
Warten ( 1 ) ;
dt << deleteRows ;
[Bearbeiten: "Eval Formula" hinzugefügt, um Berechnungsprobleme in Echtzeit zu vermeiden.]
Hier ist ein Code-Fragment, von dem ich denke, dass es das tut, wonach Sie suchen:
dt = Datentabelle ( "targetdt" ) ;
dt << Wählen Sie wo ( : Stunde == 0 ) ;
sdt = dt << Teilmenge ( ausgewählte Zeilen ) ; // Generiere die Subset-Tabelle für die Daten um Uhr = 0
minspec = 3 ; // dein spez
sdt << Neue Spalte ( "inspec" . Formel ( : Param1 > = minspec ) Eval Formula ) ; // Sieh nach, ob dieses dut gemäß der Angabe von hours = 0 in der Spezifikation liegt
dt << aktualisieren (
Mit ( sdt ) .
Spalten stimmen ( : Log# = : Log# . : DUT_ID = : DUT_ID ) .
Fügen Sie Spalten aus der Update-Tabelle hinzu ( : inspec )
) ;
dt << Wählen Sie wo ( : inspec == 0 ) ;
dt << Zeilen löschen () ;
Der Schlüssel ist, eine Spalte wie "Inspec" zu haben, die Sie mit "Update" zu Ihrer ursprünglichen Tabelle hinzufügen. Dann können Sie nach dieser Spalte filtern.