Script exécuté séquentiellementJ'essaie de créer mes estimations de sauvegarde à partir de ma plate-forme de survie, puis de saisir les estimations dans le tableau nouvellement créé. Le problème est qu'il n'attendra pas que la table de survie soit créée avant d'exécuter l'expression de sortie. J'ai essayé de terminer, d'attendre, différentes commandes, etc... et je n'arrive pas à faire fonctionner cela, avez-vous des suggestions ? J'ai JMP 16.0 avec 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);AnalytiquemacOSScriptRe : Script exécuté de manière séquentielleRecevez-vous un message d'erreur dans le journal de JMP ? Dans l'exemple que vous avez donné, ayez le nom Sur pour l'expression, puis évaluez Survival, pas sûr, cela pourrait-il être le problème? Cela devrait entraîner une erreur telle que : Nom non résolu : Survie dans l'accès ou l'évaluation de 'Survie' , Survie/*###*/
Cela semble bien fonctionner après avoir changé puis 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);
Dans les cas assez rares où JMP nécessite l'ajout d'un délai, wait(0) est généralement suffisant (et si vous avez beaucoup de formules << exécuter des formules pourrait aider).
Re : Script exécuté de manière séquentielleJe pense que je comprends ce que vous essayez de faire - en fait, vous voulez que la fenêtre de saisie pour le Survie() plate-forme pour être Modal -- vous voulez qu'il bloque l'exécution du script jusqu'à ce que la fenêtre soit fermée.Vous pouvez le faire en définissant explicitement une fenêtre au lieu de vous fier au comportement par défaut.Ici, j'ai créé une fenêtre modale qui contient les champs de saisie, puis je saisis chaque entrée et crée le Survie() expression avec les entrées correctes.
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>