Messaggi JSL a Fit GroupQuanto sarebbe difficile progettare JSL in modo che i messaggi inviati a Fit Group vengano inviati a TUTTE le istanze Fit Model all'interno del gruppo?
Ad esempio, se utilizzo Salva script in tabella dati su un gruppo di adattamento e quindi voglio aggiungere un singolo blocco di codice per eseguire la stessa analisi su tutti i modelli di adattamento in quel gruppo di adattamento, posso farlo? So che posso cercare e sostituire nelle chiamate Fit Model e inserire una copia del mio codice per ogni modello.
Speriamo che questo abbia senso.
Re: messaggi JSL a Fit GroupQuesta è una grande notizia. E JMP 15 va bene. JSL è abbastanza flessibile in questo caso che posso portare a termine il lavoro utilizzando il codice che ho già fornito qui. Mi ha solo richiesto di investire un po' di tempo per capire come farlo funzionare. Sarà bello ottenere un approccio più semplice in 15.
Re: messaggi JSL a Fit GroupGrazie, Michele. Ha senso.
Ho registrato la richiesta e ho inserito l'ID difetto sopra.
Ho anche parlato con @John_Sall chi ha detto di aver capito e ha pensato di poter essere in grado di ospitare qualcosa del genere in JMP 15.
Re: messaggi JSL a Fit GroupJeff,
Attualmente sto adottando un approccio creativo a questo. Nel codice seguente, "script" e "multicomp" sono espressioni che ho definito in precedenza nel codice. "script" è una chiamata Fit Group. "multicomp" è un'espressione che dirige i confronti multipli (...).
newscript = Expr(Fit Group());
For(i=1,i<=N Arg(script),i++,
// look for Fit Model calls
If( Char( Head( Arg(script,i) ) ) == "Fit Model()",
workingarg = Expr(Fit Model());
// add multicomp request to Run argument, pass all other arguments through
For(k=1,k<=N Arg(Arg(script,i)),k++,
workingarglevel2 = Arg( Arg(script,i), k );
If( Char( Head( workingarglevel2 ) ) == "Run",
Insert Into(workingarglevel2, Name Expr(multicomp));
);
Insert Into(workingarg, Name Expr(workingarglevel2));
);
// make assignment function to store each fit model into list
assignment = Expr(Assign());
Insert Into(assignment, Substitute(Expr(fm[__i__]), Expr(__i__), i));
Insert Into(assignment, Name Expr(workingarg));
Insert Into(newscript, Name Expr(assignment));
,
// if not Fit Model, we just pass the argument through to Fit Group
Insert Into(newscript, Arg(script,i))
);
);Sarebbe molto più semplice se potessi semplicemente eseguire lo script << Confronti multipli (...). Questo lascia ancora il puzzle di come definirò la mia lista "fm" che vedi anche referenziata nel codice, ho bisogno di questo per ottenere i rapporti per ogni adattamento nel gruppo Fit in modo da poter estrarre le informazioni da Confronti multipli (...) ma questo è forse un enigma per un giorno diverso.
Se provo a trasmettere un argomento a Fit Group che non si applica a tutti i membri del gruppo (ad esempio, so che non ci sono confronti multipli (...) nel processo gaussiano), JMP può semplicemente scartare la richiesta dove non non funziona? Qualcosa di simile a come funziona Try(...)? È quasi come se facessi Send(msg, fg) che tutto ciò che dobbiamo fare è scorrere ogni elemento di "fg" e fare Try(Send(msg, elements[i])))?
Speriamo che questo chiarimento abbia più senso.
Michael
Re: messaggi JSL a Fit GroupPuoi fornire un esempio del "blocco singolo di codice per eseguire la stessa analisi"? Vuoi dire che vuoi adattare lo stesso modello a ogni risposta?
Un problema è che Fit Group() può avere più tipi di fitting, non solo Fit Model. Per esempio:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Fit Group(
Fit Model(
Y( :ABRASION ),
Effects(
:SILICA & RS,
:SILANE & RS,
:SULFUR & RS,
:SILICA * :SILICA,
:SILICA * :SILANE,
:SILANE * :SILANE,
:SILICA * :SULFUR,
:SILANE * :SULFUR,
:SULFUR * :SULFUR
),
Personality( Standard Least Squares ),
Emphasis( Minimal Report ),
Run()
),
Gaussian Process(
Y( :HARDNESS ),
X( :SILICA, :SILANE, :SULFUR ),
Set Correlation Function( "Cubic" )
)
);