Option, Distribution() als modal zu behandelnHallo,
Ist es möglich, die Funktion „Verteilung“ als modal zu behandeln? Ich möchte einen Verteilungsbericht mit einer beliebigen Anzahl kontinuierlicher Verteilungen erstellen, den ich später über JSL modifizieren oder ändern werde. Ich habe festgestellt, dass sich ein Dialogfeld öffnet, wenn ich den folgenden Code ausführe, die Ausführung jedoch nicht angehalten wird und der Rest meines Codes ausgeführt wird, bevor ich die Möglichkeit habe, meine gewünschten Spalten auszuwählen.
Ich habe auch über die Verwendung eines Spaltendialogs nachgedacht, kann aber nicht herausfinden, wie man ein Verteilungsberichtsobjekt direkt mit einer beliebigen Anzahl kontinuierlicher Verteilungen codiert. Jeder Beitrag dazu, wie dies erreicht werden kann, ist sehr willkommen!
dist = dt << Distribution( Stack ( 1 ), <<MODAL></MODAL>
vs. etwas wie unten in eine for-Schleife einfügen ...
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( As Column( arbitraryName ) ),
Horizontal Layout( 1 )
Vertical( 0 ),
),
);
Vielen Dank,
Connor
Mit JMP 16.0.0
Automatisierung und SkripterstellungDatenexploration und -visualisierungWindowsBetreff: Option, Distribution() als modal zu behandelnHier ist eine Möglichkeit, dies zu tun.Fügen Sie die Verteilung einfach in ein modales Fenster ein.
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
new window("",modal,
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( As Column( "weight" ) ),
Horizontal Layout( 1 ),
Vertical( 0 ),
)
));

Nach der Fensterausführung wird kein Code ausgeführt, bis die Schaltfläche „OK“ gedrückt wird.
Betreff: Option, Distribution() als modal zu behandelnHöchstwahrscheinlich ist die Verwendung eines modalen Fensters, wie Jim vorgeschlagen hat, die einfachste Option.
Sie können Plattformen auch Ausdrücke bereitstellen, die ausgeführt werden, nachdem der Benutzer die Auswahl abgeschlossen hat. Dies ist jedoch normalerweise schwieriger und nicht erforderlich Skripthandbuch > Skriptplattformen > Benutzereingabe in JMP-Plattformen aktivieren
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution(Action(doit));
doit = Expr(
New Window("Bivariate", Bivariate(Action(doit2)))
);
doit2 = Expr(Caption("analyses complete"));Betreff: Option, Distribution() als modal zu behandelnJim, danke für die Antwort. Ich denke, meine Frage hätte etwas mehr Klarstellung vertragen können, aber ich habe einen Weg gefunden, das zu tun, was ich unten gezeigt habe. Allerdings ist es etwas klobig...
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
dlg = Column Dialog( colList = Col List( "Columns" ), );
numCols = N Items( dlg["colList"] );
startSubstring = ",Continuous Distribution( Column(:";
endSubstring = "), Horizontal Layout( 1 ), )";
mainStr = "Distribution( Stack( 1 )";
For( colCount = 1, colCount <= numCols, colCount++,
myCol = dlg["colList"][colCount];
distStr = startSubstring || Expr( myCol ) || endSubstring;
mainStr ||= distStr;
Show( mainStr );
);
mainStr ||= ")";
dist = Eval( Parse( mainStr ) );
// Code to modify dist goes here
Dies ist im Grunde ein weniger effizienter Verteilungsdialog, behebt aber das Problem, das ich zuvor hatte, dass die Ausführung nicht angehalten wurde, wenn ich einen Benutzer aufforderte, seine Spalten auszuwählen. Dies alles geschieht mit der Absicht, Statistiken an das resultierende Verteilungsfenster anzuhängen. Vielen Dank für Ihre Hilfe!