Löschen einer Zeile basierend auf dem Vorhandensein bestimmter Wörter in einer ZelleHallo zusammen! Ich denke, dies ist eine häufige Situation für viele, die mit Datendateien von verschiedenen Instrumenten arbeiten. Meine Datensätze werden durch Zusammenfügen mehrerer Ausgabedateien von einem bestimmten Instrument abgeleitet. Neben den nützlichen Datenzeilen gibt es über jeder Ausgabedatei eine Reihe von Zeilen, die das Rezept, die Datei usw. angeben. Normalerweise stehen diese Informationen in Spalte 1. Für die Verarbeitung der Daten brauche ich diese Informationen nicht, daher möchte ich die unnötigen Zeilen löschen, die die oben genannten Wörter Rezept, Datei usw. in den Zellen in Spalte 1 enthalten. Beachten Sie, dass in denselben Zellen möglicherweise andere Wörter stehen, z. B. „Wafer-Rezeptname“ oder „Stage Group File“ usw. Ich habe eine Reihe von Permutationen für Folgendes ausprobiert, erhalte jedoch immer die Fehlermeldung: „Send erwartet skriptfähige Objekte beim Zugriff auf die Auswertung von „Send“ usw. Vielen Dank im Voraus!
dt_new2 << Zeilen abrufen, in denen (enthält (:Spalte 1, „Rezept“));
dt_new2 << Zeilen löschen;
Warte(1);
dt_new2 << Zeilen abrufen, in denen (enthält (:Spalte 1, "Datei"));
dt_new2 << Zeilen löschen;
Warten(1)
Automatisierung und SkriptingDatenzusammenführung und -bereinigungBetreff: Löschen einer Zeile basierend auf dem Vorhandensein bestimmter Wörter in einer ZelleVersuchen Sie Folgendes
Names Default To Here( 1 );
dt_new2 = Current Data Table();
dt_new2 << select where( Contains( :Column 1, "Recipe" ) );
dt_new2 << delete rows;
Wait( 0 );
dt_new2 << select where( Contains( :Column 1, "File" ) );
dt_new2 << delete rows;
Der Scripting-Index
Hilfe=>Skripting-Index
ist eine großartige Quelle für Anweisungssyntax und Beispiele.
Ich rate Ihnen außerdem, sich die Zeit zu nehmen, den Scripting Guide in der JMP-Hilfe durchzulesen.
Betreff: Löschen einer Zeile basierend auf dem Vorhandensein bestimmter Wörter in einer ZelleWenn Sie einfach << Zeilen löschen ohne Argumente verwenden möchten, müssen Sie Zeilen auswählen (wie Jim es gezeigt hat). Eine andere Möglichkeit besteht darin, Ihre Zeilen in einer Variablen zu sammeln und diese zu verwenden (meine bevorzugte Methode, da sie die „unnötige“ Zeilenauswahl überspringt, die Auswahl jedoch visueller ist, wenn Sie debuggen möchten).
Names Default To Here(1);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "Recipe"));
dt_new2 << delete rows(rows_to_delete);
rows_to_delete = dt_new2 << get rows where(Contains(:Column 1, "File"));
dt_new2 << delete rows(rows_to_delete);
Dieses Verhalten ist nicht im Scripting Index dokumentiert,

Sie finden es jedoch in den JSL Syntax Reference Data Table Messages (jmp.com) und im Scripting Guide Delete Rows (jmp.com) (suchen Sie im Script Editor nach „Delete Rows“ und drücken Sie auf „Topic Help“).
Betreff: Löschen einer Zeile basierend auf dem Vorhandensein bestimmter Wörter in einer ZelleHallo, txnelson, danke für deine Antwort! Wie gesagt, ich habe eine Reihe verwandter Befehle ausprobiert, darunter „select where + contains“, aber ohne die Anweisung „Names default to here“ oben hat dieser Ansatz bisher nicht funktioniert. Die Routine funktioniert jetzt für mich, vielen Dank für den Input. Prost!
Betreff: Löschen einer Zeile basierend auf dem Vorhandensein bestimmter Wörter in einer ZelleHallo jthi, danke für deine Antwort, das weiß ich zu schätzen. Ich erinnere mich immer daran, mich mehr auf Variablen zu verlassen, aber leider tue ich das nur, wenn es keine anderen Optionen gibt. Ein toller Vorschlag, ich bin sicher, er wird vielen anderen nützlich sein. Prost!
Betreff: Löschen einer Zeile basierend auf dem Vorhandensein bestimmter Wörter in einer ZelleSie können es auch ohne Variablen tun, aber ich würde es nicht empfehlen, da es viel schwieriger zu lesen und schwieriger zu debuggen ist, wenn es irgendwelche Probleme gibt
Names Default To Here(1);
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "Recipe")));
dt_new2 << delete rows(dt_new2 << get rows where(Contains(:Column 1, "File")));