Wie man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenenntMithilfe des Codes aus dieser Diskussion (Gelöst: Wie kann ich die mit dem Datenfilter ausgewählten Daten in eine neue Datentabelle einfügen (mit JSL)? - JMP User Community; https://community.jmp.com/t5/Discussions/How-to-get-data-selected-by-Data-Filter-into-a-new-data-table/mp/642343 ) kann ich bestimmte Alters- und Geschlechtskombinationen über den Datenfilter auswählen und eine Teiltabelle mit dem Titel „Teilmenge der großen Klasse“ erstellen, die nur die gewünschten Zeilen enthält. Ich möchte jedoch die im Datenfilter ausgewählten Optionen verwenden, um die Datendatei zu benennen. Wenn ich beispielsweise Alter 13 und Geschlecht weiblich auswähle, möchte ich die Tabelle automatisch „Alter 13 Geschlecht W Teilmenge der großen Klasse“ oder ähnlich benennen. Leider weiß ich nicht, wie ich diese Werte aus dem Datenfilter oder im Skript abrufen kann.
Könnte mir bitte jemand die richtige Funktion, Option oder Syntax nennen?
Ich könnte sie natürlich aus den resultierenden Daten selbst extrahieren, aber ich muss davon ausgehen, dass es eine Möglichkeit gibt, diese Werte „an der Quelle“ zu speichern.
JMP 17
Danke schön!
Automatisierung und SkripterstellungBetreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?Ohne genau zu wissen, wie der Name aussehen soll, würde ich mir zunächst die WHERE-Klausel ansehen, die Sie an den Datenfilter senden können und die Ihnen etwa Folgendes liefert:

"Select Where((:age == 12 | :age == 14) & (:sex == \!"F\!" | :sex == \!"M\!"))"
Anschließend können Sie extrahieren
(:age == 12 | :age == 14) & (:sex == \!"F\!" | :sex == \!"M\!")
und verwende das als Namen
Betreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?Danke für den Vorschlag, Jarmo. Ich habe „Select where“ bereits in anderen Skripten verwendet. Leider benötige ich die interaktive Funktion des Datenfilters, da sich die Werte bei jeder Ausführung ändern. Ich kann die vorgeschlagenen Optionen nicht fest codieren – es sei denn, ich habe Ihre Idee falsch verstanden?
Was den Namen angeht, bin ich flexibel, solange die gewünschten Informationen enthalten sind. Die Namensgebung ist mir egal, sobald ich Alter und Geschlecht in einer Variable oder einem Objekt gespeichert habe, das ich bearbeiten kann.
Betreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?Das Format, das Sie mit der WHERE-Klausel << erhalten, ist eine Möglichkeit. Optional können Sie die Werte aus der Ergebnistabelle anhand der im Filter verwendeten Spalten extrahieren (dies ist zwar auch aus der Originaltabelle möglich, aber einfacher und in den meisten Fällen schneller aus der Ergebnistabelle).
Betreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?Hier ist ein Beispiel für die Erstellung einer Teilmenge einer Tabelle, die durch die Einstellungen eines Datenfilters festgelegt wurde. Der Name der neuen Tabelle entspricht der WHERE-Klausel, die zur Tabellenerstellung verwendet wurde. Die Tabelle wird beim Schließen des Datenfilters erstellt, sofern im Filter Auswahlen getroffen wurden.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = New Window( "Select Parameters",
//<
<MODAL></MODAL> theClause = obj << Get Where Clause;
If( theClause != "",
dt << subset(
selected columns( 1 ),
selected rows( 1 ),
output table( Substr( theClause, 14, Length( theClause ) - 15 ) )
)
);
);
Betreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?@txnelson Ich glaube, du hast es fallen gelassen
theClause = obj << Get Where Clause;
vor Wenn.
Parsing-Option mit regulären Ausdrücken (ich bin mir nicht sicher, ob dies in allen Fällen funktioniert)
tbl_name = Regex(theClause, "Select Where\((.+)\)", "\1")
Betreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?Ja, das habe ich....ich habe meinen ursprünglichen Eintrag korrigiert.
Betreff: Wie kann man eine Teildatentabelle basierend auf den zum Erstellen verwendeten Datenfilterauswahlen umbenennen?Vielen Dank! Es funktioniert einwandfrei. Ich habe die Erklärung zur korrekten Verwendung der GetWhere-Klausel sehr geschätzt. Jarmos Vorschlag, sie zu verwenden, schien mir der richtige Weg zu sein, aber beim Ausprobieren erhielt ich immer wieder eine Fehlermeldung. Ich sehe, dass Sie das Problem gelöst haben, indem Sie den Modalmodus entfernt und den Code zum Schließen des Fensters umschlossen haben. Ich lerne zwar langsam, aber ich lerne. Nochmals vielen Dank!