So ändern Sie eine vorhandene DisplayBox mit JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich versuche, eine Schaltfläche zu erstellen, die die Ausgabe des Dialogfelds „Modell anpassen()“ so ändert, dass ein vorhergesagtes R2 in die Tabelle „Zusammenfassung der Anpassung“ aufgenommen wird.Ich greife auf das aktuelle Fenster und muss dann die PRESS-Statistik aktivieren.Danach ist es ganz einfach und funktioniert meistens, wenn ich die PRESS-Statistik bereits über das Wettbewerbsmenü aktiviert habe.Es funktioniert auch, wenn ich das Dialogfeld „Modell anpassen“ selbst programmiere und Zeile zwei verwende, um die PRESS-Statistik zu aktivieren und sie dann an den Bericht zu senden.Das Problem, auf das ich stoße, ist, dass durch das Erfassen von „Current Window()“ eine DisplayBox erfasst wird, ohne dass die Plattform angewiesen werden kann, Dinge zu tun.Ich habe überlegt, einfach das Skript zu nehmen, um das Fenster zu erstellen, das Original zu schließen und ein neues auszuführen (ein kurzes Flackern des Bildschirms ist nicht so schlimm), aber das << Get Script gibt die Baumstruktur zurück, nicht das Fit Model()-Skript.Gibt es etwas Einfaches, das ich übersehe?Ich schreibe dies in JMP 9, falls das hilft.Ich hoffe, dass es JMP 8-kompatibel ist, aber das ist nicht wichtig.Danke!
dg = Current Window();dg << PRESS; /###/press = dg[NumberColBox("Press RMSE")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];predR = 1-press/sst;values = dg[NumberColBox(1)] << Get as Matrix;newvalues = J(1,6);newvalues[1::2] = values[1::2];newvalues[3] = predR;newvalues[4::6] = values[3::5];dg[StringColBox(1)] << Set Values({"RSquare","RSquare Adj","RSquare Pred","Root Mean Square Error","Mean of Response","Observations (or Sum Wgts)"});dg[NumberColBox(1)] << Set Values(newvalues);Betreff: So ändern Sie eine vorhandene DisplayBox mit JSLMS – das Get Scriptable Object löst das Problem perfekt!Ich sehe zwar, wo es Probleme geben könnte, wenn wir eine „Gruppe“ haben, aber ich glaube nicht, dass das angesichts der Art der Arbeit, die wir hier machen, ein wirkliches Problem sein wird.Vielen Dank, dass Sie mich zur Lösung geführt haben!
dg = Current Window();fm = dg[OutlineBox(1)] << Get Scriptable Object;fm << PRESS(1);press = dg[NumberColBox("Press")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];Betreff: So ändern Sie eine vorhandene DisplayBox mit JSLOK, ich verstehe. Der Grund dafür, dass das <
Es hat eine Weile gedauert, bis ich es herausgefunden habe, aber der folgende Ansatz, der <
dt = Offen ( „$ENGLISH_SAMPLE_DATA/Big Class.jmp“ ) ;
Modell anpassen (
Y ( : Gewicht ) ,
Auswirkungen ( : Höhe ) ,
Persönlichkeit ( Standardmäßige kleinste Quadrate ) ,
Schwerpunkt ( Minimaler Bericht ) , Laufen
) ;
fit = Fenster ( „Große Klasse: Die kleinsten Quadrate anpassen“ )[ Gliederungsrahmen ( 1 )] << Holen Sie sich ein skriptfähiges Objekt ;
fit << Drücken Sie ( 1 ) ;
drucken ( fit << Holen Sie sich das Skript ) //Get Script funktioniert wie erwartet!
So ändern Sie eine vorhandene DisplayBox mit JSLMS – vielen Dank für Ihre schnelle Antwort!Das Problem besteht darin, dass der folgende Teil nicht enthalten sein darf, damit die Bereitstellung so erfolgt, wie ich es möchte.
fit = Fit Model( Y( :ABRASION ), Effects( :SILICA, :SILANE ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run( :ABRASION << {Plot Actual by Predicted( 0 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )} ));dg = Report( fit );
Ich möchte dies als Add-In bereitstellen können, damit Endbenutzer einfach in ihrer Symbolleiste drücken können, nachdem sie ein Modell über die typische JMP-Schnittstelle angepasst haben, und die wichtigen Informationen anhängen lassen können.
Was mich verwirrt, ist, dass ich über JSL nicht auf das Kontextmenü des Fensters zugreifen kann, wenn es von JMP und nicht von JSL erstellt wurde.Ich kann über JSL problemlos auf die Menüs der obersten Ebene zugreifen, nicht jedoch auf das Kontextmenü.Außerdem verstehe ich nicht, warum die Meldung „<< Skript abrufen“ die Baumstruktur des Fensters zurückgibt und nicht ein JSL-Skript, um es zu erstellen, wie es das Kontextmenü bietet.Ich weiß, dass JMP die Dinge tun kann, die ich will, ich scheine nur von JSL ausgeschlossen zu sein.
So ändern Sie eine vorhandene DisplayBox mit JSLIch bin mir nicht sicher, was Sie genau tun möchten, aber ich denke, Sie müssen die Press(1)-Nachricht an ein Fit Model-Objekt und nicht an ein Window-Objekt senden. Wie im Beispiel unten (Ausführen und dann auf „DRÜCKEN“ klicken). Funktioniert in JMP9 (Mac).
dt = Offen ( „$English_Sample_Data/Tiretread.jmp“ ) ;
fit = Modell anpassen (
Y ( : ABRASION ) ,
Auswirkungen ( : Kieselsäure , : SILAN ) ,
Persönlichkeit ( Standardmäßige kleinste Quadrate ) ,
Schwerpunkt ( Minimaler Bericht ) ,
Laufen (
: ABRASION << { Tatsächliche Darstellung durch vorhergesagte Darstellung ( 0 ) , Regression darstellen ( 0 ) , Plot-Residuum nach Vorhersage ( 0 ) ,
Hebelwirkung des Handlungseffekts ( 0 )}
)
) ;
dg = Bericht ( fit ) ;
dg << voranstellen (
Button-Box ( "DRÜCKEN SIE" ,
fit << Drücken Sie ( 1 ) ;
Drücken Sie = dg [ Nummernfeld ( „RMSE drücken“ )] << Holen Sie sich als Matrix ;
Drücken Sie = Drücken Sie [ 1 ] ;
ss = dg [ Nummernfeld ( "Quadratsumme" )] << Holen Sie sich als Matrix ;
letzte Reihe = N-Reihe ( ss ) ;
sst = ss [ letzte Reihe ] ;
predR = 1 - Drücken Sie / sst ;
Werte = dg [ Nummernfeld ( 1 )] << Holen Sie sich als Matrix ;
neue Werte = J ( 1 , 6 ) ;
neue Werte [ 1 :: 2 ] = Werte [ 1 :: 2 ] ;
neue Werte [ 6 ] = predR ;
neue Werte [ 3 :: 5 ] = Werte [ 3 :: 5 ] ;
dg [ String-Col-Box ( 1 )] << Element hinzufügen ( „RSquare Pred“ ) ; // Werte hinzufügen funktioniert nicht, daher die Neuordnung
dg [ Nummernfeld ( 1 )] << Werte festlegen ( neue Werte ) ;
)
) ;
So ändern Sie eine vorhandene DisplayBox mit JSLUm es klarzustellen, die erste Zeile, dg = Current Window(); gibt DisplayBox[] im Protokoll zurück.Ich suche nach einer Möglichkeit, über JSL auf Kontextmenüs im Fenster zuzugreifen, um Dinge zur Baumstruktur hinzuzufügen, damit ich sie später abrufen kann, insbesondere nach der Markierung von PRESS(1).Danke!
Betreff: So ändern Sie eine vorhandene DisplayBox mit JSLIch habe versucht, ein Skript zu entwickeln, um das Skript im Skriptfenster für ein geöffnetes Fenster „Gruppe anpassen“ zu speichern. Mit anderen Worten, ein Skript, um ein Skript zu ergreifen. Dazu muss ich die Fit-Gruppe und das Objekt erstellen und eine Nachricht an sie senden. Einfach manuell durchzuführen, ist das automatisierbar?