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 Fit Model() per includere un Predicted R2 nella tabella Summary of Fit.Prendo la finestra corrente e poi devo attivare la statistica PRESS.Dopo questo è abbastanza semplice e funziona principalmente se ho già attivato la statistica PRESS tramite il menu del concorso.Funziona anche se codifico personalmente la finestra di dialogo Fit Model e utilizzo la riga due per attivare la statistica PRESS e quindi inviarla al report.Il problema che sto riscontrando è che afferrando la finestra corrente () prende un DisplayBox senza alcun modo per istruire la piattaforma a fare le cose.Ho pensato di prendere lo script per creare la finestra, chiudere l'originale ed eseguirne uno nuovo (un rapido sfarfallio dello schermo non è male) ma << Ottieni script restituisce la struttura ad albero, non lo script Fit Model().C'è qualcosa di facile che mi sfugge?Sto scrivendo questo in JMP 9, se questo aiuta.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);Re: Come modificare un DisplayBox esistente con JSLMS - Get Scriptable Object risolve il problema perfettamente!Vedo dove avere "gruppo" potrebbe causare problemi, ma non credo che sarà un vero problema dato il tipo di lavoro che svolgiamo qui.Grazie mille per avermi condotto 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];Re: Come modificare un DisplayBox esistente con JSLVa bene, ho capito. Il motivo per cui <
Mi ci è voluto un po' per capirlo, ma l'approccio seguente, utilizzando <
dt = Aprire ( "$ENGLISH_SAMPLE_DATA/Big Class.jmp" ) ;
Modello in forma (
Y ( : il peso ) ,
Effetti ( : altezza ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Rapporto minimo ) , Correre
) ;
in forma = Finestra ( "Classe grande: adatta ai minimi quadrati" )[ riquadro di contorno ( 1 )] << ottenere oggetto script ;
in forma << Premere ( 1 ) ;
Stampa ( in forma << prendi la sceneggiatura ) //Ottieni 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 in cui lo desidero, 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 distribuire questo come componente aggiuntivo per gli utenti finali per poter semplicemente premere dalla loro barra degli strumenti dopo aver adattato un modello utilizzando la tipica interfaccia JMP e fargli aggiungere le informazioni importanti.
Ciò che mi confonde è che non posso, tramite JSL, accedere al menu contestuale della finestra se JMP lo ha creato piuttosto che JSL lo ha creato.Posso accedere facilmente ai menu di primo livello tramite JSL, ma non al menu contestuale.Inoltre, non capisco perché il messaggio << Get Script restituisce la struttura ad albero della finestra anziché uno script JSL per crearlo come quello fornito dal menu di scelta rapida.So che JMP può fare le cose che voglio, mi sembra solo di essere bloccato da JSL.
Come modificare un DisplayBox esistente con JSLNon sono sicuro di cosa stai cercando di fare esattamente, ma penso che tu debba inviare il messaggio Press(1) a un oggetto Fit Model piuttosto che a un oggetto Window. Come nell'esempio seguente (Esegui e quindi fai clic su "PRESS"). Funziona in JMP9 (Mac).
dt = Aprire ( "$English_Sample_Data/Titreread.jmp" ) ;
in forma = Modello in forma (
Y ( : ABRASIONE ) ,
Effetti ( : SILICE , : SILANO ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Rapporto minimo ) ,
Correre (
: ABRASIONE << { Trama Attuale da Previsto ( 0 ) , Regressione della trama ( 0 ) , Residuo di trama da Predicted ( 0 ) ,
Leva effetto trama ( 0 )}
)
) ;
dig = Rapporto ( in forma ) ;
dig << anteporre (
Bottone ( "STAMPA" ,
in forma << stampa ( 1 ) ;
stampa = dig [ Numero Col Box ( "Premi RMSE" )] << Ottieni come Matrix ;
stampa = stampa [ 1 ] ;
ss = dig [ Numero Col Box ( "Somma dei quadrati" )] << Ottieni come Matrix ;
ultima riga = Riga N ( ss ) ;
sst = ss [ ultima riga ] ;
predR = 1 - stampa / sst ;
i valori = dig [ Numero Col Box ( 1 )] << Ottieni come Matrix ;
nuovi valori = J ( 1 , 6 ) ;
nuovi valori [ 1 :: 2 ] = i valori [ 1 :: 2 ] ;
nuovi valori [ 6 ] = predR ;
nuovi valori [ 3 :: 5 ] = i valori [ 3 :: 5 ] ;
dig [ Stringa Col Box ( 1 )] << Aggiungi elemento ( "RSquare Pred" ) ; // Aggiungi valori non funziona, quindi il riordino
dig [ Numero Col Box ( 1 )] << Imposta i valori ( nuovi valori ) ;
)
) ;
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 acquisire in seguito, in particolare, come contrassegnare PRESS(1).Grazie!