Come modificare un DisplayBox esistente con JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto cercando di creare un pulsante che modificherà l'output della finestra di dialogo Adatta modello() per includere un R2 previsto nella tabella Riepilogo dell'adattamento.Prendo la finestra corrente e poi devo attivare la statistica PRESS.Dopodiché è abbastanza semplice e funziona soprattutto se ho già attivato la statistica PRESS tramite il menu del concorso.Funziona anche se codifico personalmente la finestra di dialogo Adatta modello e utilizzo la riga due per attivare la statistica PRESS e quindi inviarla al report.Il problema che sto riscontrando è che l'acquisizione di Current Window() cattura un DisplayBox senza alcun modo per istruire la piattaforma a fare cose.Ho preso in considerazione l'idea di prendere lo script per creare la finestra, chiudere l'originale ed eseguirne una nuova (un rapido sfarfallio dello schermo non è poi così male) ma << Ottieni script restituisce la struttura ad albero, non lo script Fit Model().C'è qualcosa di facile che mi sfugge?Lo scrivo in JMP 9, se può essere d'aiuto.Spero che sia compatibile con JMP 8, ma non è importante.Grazie!
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);Ri: Come modificare un DisplayBox esistente con JSLMS: Get Scriptable Object risolve perfettamente il problema!Vedo che avere un "gruppo" potrebbe causare problemi, ma non penso che sarà un vero problema dato il tipo di lavoro che svolgiamo qui.Grazie mille per avermi portato alla soluzione!
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];Ri: Come modificare un DisplayBox esistente con JSLOk capisco. Il motivo per cui <
Ci ho messo un po' a capirlo, ma l'approccio riportato di seguito, utilizzando <
dt = Aprire ( "$ENGLISH_SAMPLE_DATA/Grande Classe.jmp" ) ;
Modello adatto (
Y ( : peso ) ,
Effetti ( : altezza ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Rapporto minimo ) , Correre
) ;
adatto = Finestra ( "Grande lezione: adatta ai minimi quadrati" )[ casella di contorno ( 1 )] << ottenere un oggetto scriptabile ;
adatto << Premere ( 1 ) ;
stampa ( adatto << ottenere la sceneggiatura ) //Get Script funziona come previsto!
Come modificare un DisplayBox esistente con JSLMS: grazie per la tua rapida risposta!Il problema è che, affinché questo venga distribuito nel modo desiderato, non può includere la parte seguente.
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 );
Voglio essere in grado di implementarlo come componente aggiuntivo per consentire agli utenti finali di poter semplicemente premere dalla barra degli strumenti dopo aver adattato un modello utilizzando la tipica interfaccia JMP e aggiungere le informazioni importanti.
Ciò che mi confonde è che non posso, tramite JSL, accedere al menu contestuale della finestra se è stato creato da JMP anziché da JSL.Posso accedere facilmente ai menu di livello superiore tramite JSL, ma non al menu contestuale.Inoltre, non capisco perché il messaggio << Ottieni script restituisce la struttura ad albero della finestra anziché uno script JSL per crearla come fornito dal menu contestuale.So che JMP può fare le cose che voglio, mi sembra solo che ne sia bloccato da JSL.
Come modificare un DisplayBox esistente con JSLNon sono sicuro esattamente di cosa stai cercando di fare, ma penso che tu debba inviare il messaggio Press(1) a un oggetto Fit Model anziché a un oggetto Window. Come nell'esempio seguente (Esegui e quindi fai clic su "PRESS"). Funziona con JMP9 (Mac).
dt = Aprire ( "$English_Sample_Data/Tiretread.jmp" ) ;
adatto = Modello adatto (
Y ( : ABRASIONE ) ,
Effetti ( : SILICE , : SILANO ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Rapporto minimo ) ,
Correre (
: ABRASIONE << { Traccia il valore effettivo rispetto a quello previsto ( 0 ) , Regressione grafica ( 0 ) , Traccia residuo in base alla previsione ( 0 ) ,
Leva degli effetti di trama ( 0 )}
)
) ;
dg = Rapporto ( adatto ) ;
dg << anteporre (
Casella dei pulsanti ( "PREMERE" ,
adatto << premere ( 1 ) ;
premere = dg [ Casella numerica ( "Premere RMSE" )] << Ottieni come Matrix ;
premere = premere [ 1 ] ;
ss = dg [ Casella numerica ( "Somma dei quadrati" )] << Ottieni come Matrix ;
ultima riga = Riga N ( ss ) ;
sst = ss [ ultima riga ] ;
predR = 1 - premere / sst ;
valori = dg [ Casella numerica ( 1 )] << Ottieni come Matrix ;
nuovivalori = J ( 1 , 6 ) ;
nuovivalori [ 1 :: 2 ] = valori [ 1 :: 2 ] ;
nuovivalori [ 6 ] = predR ;
nuovivalori [ 3 :: 5 ] = valori [ 3 :: 5 ] ;
dg [ String Col Box ( 1 )] << Aggiungi elemento ( "RSquare Pred" ) ; // Aggiungi valori non funziona, da qui il riordino
dg [ Casella numerica ( 1 )] << Imposta valori ( nuovivalori ) ;
)
) ;
Come modificare un DisplayBox esistente con JSLGiusto per essere chiari, la prima riga, dg = Current Window(); restituisce DisplayBox[] nel registro.Sto cercando un modo per accedere ai menu contestuali nella finestra tramite JSL per aggiungere elementi alla struttura ad albero in modo da poterli prendere in seguito, in particolare, come contrassegnare PRESS(1).Grazie!
Ri: Come modificare un DisplayBox esistente con JSLStavo cercando di ideare uno script per salvare lo script nella finestra dello script per una finestra Fit Group aperta. Uno script per afferrare uno script in altre parole. Per fare ciò devo creare il Fit Group, oppormi e inviargli un messaggio. Facile da fare manualmente, è possibile automatizzarlo?