Script eseguito in sequenzaSto cercando di creare le mie stime di salvataggio dalla mia piattaforma di sopravvivenza, quindi prendere le stime nella tabella appena creata. Il problema è che non attenderà la creazione della tabella Sopravvivenza prima di eseguire l'espressione di output. Ho provato a finire, attendere, ordini diversi, ecc... e non riesco a farlo funzionare, qualche suggerimento? Ho JMP 16.0 con MacBook.
Names Default To Here( 0 );
Clear Log();
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
Sur = Expr(
Obj = dt << Survival(
Failure Plot( 1 ),
Show Points( 1 ),
Show Shaded Simultaneous CI( 1 ),
Show Simultaneous CI( 1 ),
Weibull Fit( 1 )
//Save Estimates
);
dtname = Data Table( dt ) << Get Name;
Show( dtname );
obj << Save Estimates;
wait(1);
);
Eval( Survival );
Output = Expr(
dt2 = Data Table( dtname || " Survival");
columnnamegroup = Column( dt2, 1 ) << Get Name;
Groups = Column( dt2, columnnamegroup ) << Get As Matrix;
Show( Groups );
);
Eval(Output);AnaliticaMac OSSceneggiaturaRe: Script eseguito in sequenzaViene visualizzato un messaggio di errore nel registro di JMP? Nell'esempio che hai fornito hai il cognome per l'espressione e quindi valuta Survival, non sono sicuro, potrebbe essere questo il problema? Dovrebbe risultare in un errore come: Nome non risolto: Sopravvivenza in accesso o valutazione di 'Sopravvivenza' , Sopravvivenza/*###*/
Questo sembra funzionare bene dopo aver cambiato poi Eval(Survivor) -> Eval(Sur):
Names Default To Here(0);
dt = Open("$SAMPLE_DATA/Rats.jmp");
Sur = Expr(
obj = dt << Survival(Y(:days), Censor(:Censor), Grouping(:Group));
dtname = Data Table(dt) << Get Name;
obj << Save Estimates;
);
Eval(Sur);
Output = Expr(
dt2 = Data Table(dtname || " Survival");
columnnamegroup = Column(dt2, 1) << Get Name;
Groups = Column(dt2, columnnamegroup) << Get As Matrix;
Show(Groups);
);
Eval(Output);
Nei casi abbastanza rari JMP richiede l'aggiunta di un certo ritardo, wait(0) di solito è sufficiente (e se hai molte formule << eseguire formule potrebbe aiutare).
Re: Script eseguito in sequenzaPenso di capire cosa stai cercando di fare - in effetti vuoi che la finestra di input per il Sopravvivenza() piattaforma per essere Modale -- vuoi che blocchi l'esecuzione dello script fino alla chiusura della finestra.Puoi farlo definendo esplicitamente una finestra invece di fare affidamento sul comportamento predefinito.Qui ho creato una finestra modale che contiene i campi di input, quindi prendo ogni input e creo il file Sopravvivenza() espressione con gli input corretti.
Names Default To Here( 1 );
dt = Current Data Table();
If( Not( Is Scriptable( dt ) ),
dtsel = Pick File( "Open File", {"JMP|jmp", "All files|*"} );
If( dtsel == "",
Stop(),
Try( dt = Open( dtsel ), Stop() )
);
);
dtname = Data Table( dt ) << Get Name;
validated = 0;
New Window( "Inputs",
<<MODAL></MODAL>