Ich habe ein lineares Regressionsmodell für 4 verschiedene Temperaturen. Ich habe jeweils einen lokalen Datenfilter angelegt, der es mir ermöglicht, das Datensegment anzugeben.
Der Code dafür ruft jeden Wert in meiner Quelltabellenspalte 2 auf, wie unten gezeigt. Ich möchte, dass dies automatisiert wird, sodass es möglicherweise mehr oder weniger Temperaturen gibt und ich den Code nicht jedes Mal bearbeiten möchte. Es gibt wahrscheinlich einen Weg durch JSL-Skripte, den ich versuche, nicht selbst zu schreiben und stattdessen den Workflow zu verwenden. Ich habe einen Datenfilter hinzugefügt, der genau wie gewünscht funktioniert, solange auch die lokalen Filter vorhanden sind. Wenn ich die lokalen Filter entferne, funktioniert der Datenfilter nicht mehr auf die gleiche Weise.
Wie kann ich den Datenfilter ändern, um die lokalen Filter überflüssig zu machen?
Wenn dies nicht möglich ist, wie würde ich die lokalen Filter so codieren, dass sie automatisch funktionieren?
Datentabelle( „Sortiert“) << Datenfilter(
Standort( {890, 387} ),
Modus( Include( 1 ) ),
Filter hinzufügen(
Spalten( :Segment ),
Wo( :Segment == -100 ),
Display( :Segment, N Items( 8 ) )
)
);
Datentabelle( „Sortiert“) << Modell anpassen(
SendToByGroup( Bygroup Default ),
Y( :VCE ),
Von( :Quelltabelle 2 ),
Effekte( :ICE ),
Persönlichkeit( „Standard-Kleinste-Quadrate“),
//Emphasis( "Effect Leverage"),
Laufen(
:VCE << {Zusammenfassung der Anpassung( 0 ), Varianzanalyse( 0 ),
Parameterschätzungen (0), mangelnde Anpassung (0), skalierte Schätzungen (0),
Istwert nach Vorhersage darstellen (0), Restwert nach Vorhersage darstellen (0),
Studentisierte Residuen darstellen (0), Wirkungshebel darstellen (0),
Residuum durch Normalquantile( 0 ), Box-Cox-Y-Transformation( 0 ) grafisch darstellen}
),
SendToByGroup(
{:Quelltabelle 2 == "25C"},
Lokaler Datenfilter(
Filter hinzufügen( Spalten( :Segment), Anzeige( :Segment, N Elemente( 8 ) ) )
)
),
SendToByGroup(
{:Quellentabelle 2 == "150C"},
Lokaler Datenfilter(
Filter hinzufügen( Spalten( :Segment), Anzeige( :Segment, N Elemente( 8 ) ) )
)
),
SendToByGroup(
{:Quellentabelle 2 == "125C"},
Lokaler Datenfilter(
Filter hinzufügen( Spalten( :Segment), Anzeige( :Segment, N Elemente( 8 ) ) )
)
),
SendToByGroup(
{:Quelltabelle 2 == "100C"},
Lokaler Datenfilter(
Filter hinzufügen( Spalten( :Segment), Anzeige( :Segment, N Elemente( 8 ) ) )
)
)
Ich bin mir nicht ganz sicher, was Sie hier tun wollen? Fehlt Ihnen möglicherweise nur Show(1) in Ihrem Datenfilter, um ausgeschlossene Werte auszublenden?

Verwenden Sie unterschiedliche WHERE-Klauseln in den mehreren Filtern oder wählen Sie in jedem Filter den gleichen Bereich aus?Ich frage, weil es möglicherweise einfacher ist, nur einen Filter statt mehrerer zu verwenden, wenn Sie für jede Untergruppe die gleichen Bedingungen wünschen.
Entschuldigung für die Verwirrung!
Ja, ich möchte für jeden den gleichen Zustand. Ich hätte gerne einen Filter, der sie alle ändert.
Ich habe den Datenfilter ausprobiert und kann ihn korrekt verwenden, wenn es lokale Filter gibt. Wenn ich die lokalen Filter entferne, ändert der Datenfilter die Analyse nicht und hebt stattdessen nur die Punkte hervor.
Es tut mir leid, dass meine Erklärung nicht klar war. Ich habe jetzt „Anzeigen“ und „Einschließen“ ausgewählt und das funktioniert besser. Der Datenfilter passt die Analyse an, sofern ein lokaler Filter vorhanden ist.
Entweder möchte ich die lokalen Filter nicht benötigen (aber ich denke, dass es für Sie schwieriger ist, dabei zu helfen). Oder ich möchte, dass die lokalen Filter nicht speziell die Werte der Quelltabelle aufrufen (da sich dies jedes Mal ändert).
Ich vermute, dass das Problem mit der Option „Automatische Neuberechnung“ auf der/den von Ihnen verwendeten JMP-Plattform(en) zusammenhängt.
Gehen Sie zum roten Dreieck und wählen Sie aus
Wiederherstellen=>Automatische Neuberechnung
Dies sollte die Änderung der gesamten Anzeige bei einer Änderung des Datenfilters ermöglichen.
Um einen Filter für eine Nach-Gruppe zu haben, würde ich etwa Folgendes vorschlagen:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Window("report",
Data Filter Context Box(
HListBox(
dt << Data Filter(Local, Columns(:age)),
VListBox(
dt << Bivariate(X(:height),Y(:weight),By(:sex))
)
)
)
);
In JMP18 wird es einfacher sein, einen einzelnen Filter interaktiv in einer Nachgruppe zu teilen, als über Skripting, aber dieses Skript sollte für mehrere Versionen funktionieren und wird auch in Zukunft funktionieren.