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 R2 previsto nella tabella Riepilogo di adattamento.Afferro la finestra corrente e quindi devo attivare la statistica PRESS.Dopo questo è abbastanza semplice e funziona soprattutto se ho già attivato la statistica PRESS attraverso 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 l'acquisizione di Current Window () afferra un DisplayBox senza alcun modo per istruire la piattaforma a fare le cose.Ho preso in considerazione l'idea di afferrare lo script per creare la finestra, chiudere l'originale ed eseguirne uno nuovo (un rapido sfarfallio dello schermo non è poi così male) ma << Get Script restituisce la struttura ad albero, non lo script Fit Model ().C'è qualcosa di facile che mi manca?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);Ri: Come modificare un DisplayBox esistente con JSLMS - Get Scriptable Object risolve perfettamente il problema!Vedo dove avere un "gruppo" potrebbe causare problemi, ma non credo 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 seguente, usando <
dt = Aprire ( "$ENGLISH_SAMPLE_DATA/Classe grande.jmp" ) ;
Modello adatto (
Y ( : peso ) ,
Effetti ( : altezza ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Rapporto minimo ) , Correre
) ;
adatto = Finestra ( "Grande classe: adatta i minimi quadrati" )[ 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 sottostante.
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 gli utenti finali per poter semplicemente premere dalla loro barra degli strumenti dopo aver adattato un modello utilizzando la tipica interfaccia JMP e aver aggiunto le informazioni importanti.
Ciò che mi confonde è che non posso, tramite JSL, accedere al menu contestuale della finestra se JMP lo ha creato anziché JSL.Posso accedere facilmente ai menu di primo livello tramite JSL, ma non al menu contestuale.Inoltre, non capisco perché il messaggio << Ottieni script restituisca la struttura ad albero della finestra piuttosto che uno script JSL per crearlo come quello 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 di cosa stai cercando di fare, ma penso che devi 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 con JMP9 (Mac).
dt = Aprire ( "$Italian_Sample_Data/Tiretread.jmp" ) ;
adatto = Modello adatto (
Y ( : ABRASIONE ) ,
Effetti ( : SILICE , : SILANO ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Rapporto minimo ) ,
Correre (
: ABRASIONE << { Plot reale da previsto ( 0 ) , Regressione della trama ( 0 ) , Traccia residuo per previsto ( 0 ) ,
Leva effetto trama ( 0 )}
)
) ;
dg = Rapporto ( adatto ) ;
dg << anteporre (
Scatola dei bottoni ( "PREMERE" ,
adatto << premere ( 1 ) ;
premere = dg [ Numero Col Box ( "Premi RMSE" )] << Ottieni come Matrix ;
premere = premere [ 1 ] ;
ss = dg [ Numero Col Box ( "Somma dei quadrati" )] << Ottieni come Matrix ;
ultima riga = Riga N ( ss ) ;
sst = ss [ ultima riga ] ;
predR = 1 - premere / sst ;
valori = dg [ Numero Col Box ( 1 )] << Ottieni come Matrix ;
newvalues = J ( 1 , 6 ) ;
newvalues [ 1 :: 2 ] = valori [ 1 :: 2 ] ;
newvalues [ 6 ] = predR ;
newvalues [ 3 :: 5 ] = valori [ 3 :: 5 ] ;
dg [ String Col Box ( 1 )] << Aggiungi elemento ( "RSquadro Pred" ) ; // Aggiungi valori non funziona, quindi il riordino
dg [ Numero Col Box ( 1 )] << Imposta valori ( newvalues ) ;
)
) ;
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 di scelta rapida nella finestra tramite JSL per aggiungere elementi alla struttura ad albero in modo da poterli afferrare in seguito, in particolare, come contrassegnare PRESS (1).Grazie!