Come eseguire il loop utilizzando una funzioneLa differenza tra Function() ed Expr(). Dopo msharp ho risposto alla mia domanda ieri, mi sono reso conto di aver sbagliato tutto. Attualmente ogni output, sia esso un grafico o una distribuzione, aveva la propria Expr() individuale con 3 diverse iterazioni al suo interno. In poche parole, si tratta di ~ 20 script Expr(). La possibilità di utilizzare una funzione lo ridurrebbe a uno script di tracciato grafico e uno script di distribuzione. Ciò che ho difficoltà a fare ora è eseguire il looping della funzione.
Ho allegato la tabella dei dati di esempio, un esempio di una sola delle espressioni che utilizzo per tracciare il grafico e l'inizio di uno script di funzione. Apprezzerei qualsiasi aiuto per risolvere questo problema. Posso usare la soluzione a questo problema e applicarla a molti altri. Puoi eseguire lo script originale per capire cosa sto cercando di fare..
Grazie
PS se hai tempo sto cercando di combinare i 3 diari in un unico diario. Sto cercando di tornare in uno script pubblicato su questo thread
https://community.jmp.com/t5/Discussions/Combine-multiple-journals-into-one-journal/td-p/6129
Ri: Come eseguire il loop utilizzando una funzioneGrazie signor Nelson,
Apprezzo davvero l'aiuto fornito da te e dalla community. Devo dirti che la programmazione in generale è molto nuova e difficile per me. Stai parlando con una persona che ha ottenuto una "C" in C++ e l'ha utilizzata. Per ogni ora che trascorro a scrivere codice, passo 3 ore a leggere la Guida allo Scripting, utilizzando l'Indice di Scripting e ovviamente leggendo i forum. A causa della mia ignoranza con la programmazione in generale e del tentativo di tradurla in JSL, dedico molto tempo all'apprendimento. Di solito passo il mio tempo a leggere il codice che è stato pubblicato qui e provo a rientrare in quello che sto cercando di fare.Mi sto iscrivendo ai webinar per saperne di più e soprattutto per familiarizzare con JMP 14 quando verrà lanciato nel prossimo futuro. Mi scuso se faccio troppe domande e cerco aiuto più di chiunque altro.
Detto questo, grazie ancora per il vostro aiuto.
Ri: Come eseguire il loop utilizzando una funzionePrima di tutto, se hai intenzione di dedicarti alla codifica JSL, devi leggere ogni giorno la Guida allo scripting
Aiuto==>Libri==>Guida allo scripting
Di seguito è riportata una rielaborazione dello script per illustrare come eseguire il loop utilizzando una funzione e come mantenere tutto l'output nello stesso journal di output.So che non è esattamente ciò di cui hai bisogno, ma dovrebbe darti un buon inizio su come fare ciò che desideri
Names Default To Here( 1 );
dt = Current Data Table();
doGraphPlot = Function(
{dt, Xaxis, Yaxis, Grby, chnl},
Eval(
Substitute(
Expr(
gb = dt << Graph Builder(
invisible,
where( dt:Channel == __chnl__ ),
size( 600, 400 ),
show control panel( 0 ),
variables(
Y( Eval( Yaxis ) ),
X( Eval( Xaxis ) ),
Group X( Eval( Xgrby ) ),
Overlay( :RowCol )
),
elements( smoother( X, Y, legend( 19 ), lambda( 0.0001 ) ) )
)
),
Expr( __chnl__ ), chnl
)
);
Report( gb )[Outline Box( 1 )] << set title( "Channel = " || Char( chnl ) );
);
jjrn = New Window( "Data Plot - Output_1 vs Input", <<JOURNAL></JOURNAL>