Betreff: Durch die Verwendung von Where() zum Herunterfiltern der Analyse wird eine neue verknüpfte private Datentabelle erstelltPlattformen haben eine gemeinsame Handhabung für Where() und By(), die beide Teilmengentabellen erstellen, um die Funktionalität zu implementieren.Ich bin mir nicht sicher, ob es eine so detaillierte Dokumentation zur Implementierung gibt.
Die Teilmenge kann einen nützlichen Unterschied zur Manipulation des Zeilenzustands über Filter darstellen.Dieses Beispiel zeigt, dass JMP beim Anpassen eines Modells an Teilmengen vermeidet, dieses Modell auf die Zeilen anzuwenden, die nicht in der Teilmenge enthalten sind.Wenn Sie dasselbe mit einem Filter machen, wird das Modell auf alle Zeilen angewendet.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
Ob Sie diese Art von Teilmenge verwenden möchten, hängt möglicherweise von den Besonderheiten der von Ihnen durchgeführten Analyse ab.
-Dan
Durch die Verwendung von Where() zum Herunterfiltern der Analyse wird eine neue verknüpfte private Datentabelle erstelltNormalerweise ist es mir egal, wenn JMP (JSL) etwas tut, von dem ich nicht erwarte, dass es funktioniert, da es meistens funktioniert und es das Einzige ist, was mich interessiert ... aber heute habe ich mir etwas „Interessantes“ ausgedacht. Wenn Sie Where() zum Filtern Ihrer Analyse verwenden, erhalten Sie eine private Datentabelle, die mit Ihrer Datentabelle verknüpft ist (mit einem ziemlich seltsamen Namen, in diesem Fall „Big Class, where -sex == -F-“).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
Daher habe ich einige Fragen zu diesem Verhalten:
- Passiert das immer, wenn ich Where() auf diese Weise verwende, um die Analyse herunterzufiltern (nicht nur im Graph Builder)?
- Ist das irgendwo dokumentiert?
- Gibt es in JMP weitere Interaktionen wie diese, bei denen Sie einige versteckte Dinge erstellen, auf die Sie dann möglicherweise stoßen? (Bei mir verursachte dies Probleme mit einer meiner Funktionen, weil ich << Get Data Table verwendet habe, um die Referenz für die Datentabelle abzurufen, aber eine falsche Antwort erhalten habe. Eine einfache Lösung bestand darin, der Funktion eine Tabellenreferenz als Parameter hinzuzufügen
- Sollte ich überhaupt so filtern?
Bearbeiten:
Hinzufügung einiger Hilfeseiten, die zumindest teilweise damit zusammenhängen
Automatisierung und Skripterstellung