Référencer une colonne dans JSLJe suis continuellement étonné par la quantité d'informations de base sur JSL qui manque dans les didacticiels et les recherches sur Internet. Je ne sais pas comment on peut s'attendre à apprendre les bases de ce langage sans se plonger dans d'énormes quantités d'informations supplémentaires inutiles, puis échouer à la fin pour trouver ce qui est nécessaire de toute façon. Je suppose que c'est pourquoi les forums de discussion sont disponibles en tant que ressource.
J'essaie simplement de référencer une colonne donnée une table de données dans JSL.
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";quand j'écris() le col rien ne s'affiche, ce qui implique que la référence ne fait pas référence. La colonne est clairement remplie de données, elle n'est pas vide, j'ai vérifié. Erreur stupide à faire mais j'ai ce couvert. Cela dit, je ne sais pas ce qui ne va pas. Je pensais que c'était une chose assez basique dans JSL mais je trouve continuellement que ces "choses très basiques dans JSL" échouent et coûtent de précieuses minutes à des heures de dépannage alors que je pourrais travailler sur la logique de mon code. Je suis enclin à déposer une plainte auprès de mon responsable concernant notre utilisation de ce langage et à suggérer de passer éventuellement à quelque chose de plus logique et bien conçu pour la programmation (évidemment, JSL est à usage statistique, pas vraiment pour la logique de programmation), comme Python.
. Merci pour votre aide.
ScriptRe : Référencer une colonne dans JSL[NB : j'avais écrit la majeure partie de ce texte auparavant @jthi répondit et dit à peu près la même chose.]
Tout d'abord, si vous n'avez pas lu (au moins les premiers chapitres) du Guide de création de scripts JMP ( PDF , si vous préférez) vous devriez vraiment.
JMP est un langage de script et non un langage de programmation. Il est très étroitement lié à l'interface utilisateur de JMP et destiné à permettre l'automatisation des tâches JMP. Essayer d'y penser de la même manière que vous pensez à Python ou à d'autres langages qui ne contrôlent pas une interface utilisateur entraînera de la frustration.
J'essaie simplement de référencer une colonne donnée une table de données dans JSL.
Votre question en est un exemple. Le concept de "référencer une colonne" est compliqué car une "colonne" peut signifier différentes choses dans différents contextes (par exemple, un appel de plate-forme, la manipulation des propriétés d'une colonne, une formule de colonne).
Alors, qu'avez-vous ce "col" à contenir dans votre exemple ? Les données contenues dans la colonne ? La valeur d'une ligne particulière de cette colonne ?
Ou, demandé différemment? Où avez-vous voulu utiliser "col" après l'avoir défini sur ce que vous vouliez qu'il contienne ? Dans un appel de plate-forme (par exemple, Distribution(Y(col)) ? Ou ailleurs?
Re : Référencer une colonne dans JSLSi je me souviens bien, utiliser dt:"colname" (comme vous utiliseriez As Column()) vous donnera un accès direct à la valeur actuelle de la ligne actuelle() de la colonne nommée "colname" dans datatable avec la référence dt. Pour obtenir une référence à la colonne, vous pouvez utiliser Column(dt, "colname") comme @Thierry_S a dit.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column Title/Name",
Character,
"Nominal",
Set Values({"a1", "b2", "c3", "d4", ""})
)
);
For each row(dt,
col = dt:"Column Title/Name";
Show(col);
);
Row() = 1;
col = AsColumn(dt, "Column Title/Name");
Show(col);
col = Column(dt, "Column Title/Name");
Show(col);Je ne dis certainement pas que la documentation JSL est la meilleure, mais elle contient pas mal de matériel (et une excellente communauté et une assistance par e-mail). Pour commencer, voici de bonnes sources :
JMP15 - Guide de création de scripts
Aide JMP
Index de script directement à partir de JMP
S'il y a quelque chose qui manque ou qui n'est pas clair dans l'aide JMP ou l'index des scripts, je suis presque sûr que JMP se fera un plaisir de les améliorer.
@Jeff_Perkinson
Re : Référencer une colonne dans JSLLa syntaxe correcte est : col = Colonne (dt, "Nom")