Comment résoudre un problème avec une formule pour une colonneCode:
If(
!Contains(col_name_list, "EFT (h)"),
Current Data Table() << New Column(
"EFT (h)",
Numeric,
Continuous,
Format("Fixed Dec", 10, 1),
Formula(
:Name( "duration" ) * 24
)
)
);
Erreur:
Inattendu « ) ». Il manque peut-être un « ; » ou un « »,
Ligne 9 Colonne 6 : ))►)
Le texte restant qui a été ignoré était
)
Résolution du problème avec la formule pour la colonne EFT (h) :
Je n'arrive pas à comprendre ce que cela pourrait être.
J'ai essayé ça aussi :
If(
!Contains(col_name_list, "EFT (h)"),
Current Data Table() << New Column(
"EFT (h)",
Numeric,
Continuous,
Format("Fixed Dec", 10, 1),
Formula(:duration * 24)
)
);
Automatisation et scriptsAccès aux donnéesFusion et nettoyage des donnéesRe : Comment résoudre un problème avec une formule pour une colonneIf(
!Contains(col_name_list, "EFT (h)"),
Current Data Table() << New Column(
"EFT (h)",
Numeric,
Continuous,
Format("Fixed Dec", 10, 1),
Formula(
:Name( "EFT (h)" ) * 24
)
)
);
en utilisant ceci
Re : Comment résoudre un problème avec une formule pour une colonneVeuillez noter que dans la dernière version, la colonne durée est remplacée par la colonne EFT(h).
Pour trouver des problèmes avec les virgules, vous pouvez double-cliquer sur un crochet et le crochet correspondant sera également marqué - avec le script ci-joint.
Une autre option : utiliser un script de reformatage.
Cela fonctionne comme l'exécution du code : la syntaxe est vérifiée et en cas d'erreur la ligne avec l'erreur sera indiquée dans le journal.

En appliquant de telles vérifications, il n’y a aucun problème avec les virgules dans votre code.
Outre les vérifications manuelles, certaines automatisations seront utiles, par exemple la coloration automatique du code, comme suggéré dans ce souhait :
Surlignage syntaxique avancé dans l'éditeur JSL - la fonction évalue-t-elle son argument ?
Re : Comment résoudre un problème avec une formule pour une colonneLe problème le plus compliqué avec les supports déséquilibrés :
for ( i=1, i < 10, i++,
list = { A, B, C ;
E+F;
);

... les problèmes avec les supports « équilibrés ».
Lorsque vous positionnez le curseur derrière la parenthèse fermante, il affiche la parenthèse ouvrante correspondante :

Alors, tout va bien ? Pourquoi ce message d'erreur à côté du « ) » de fermeture ?
JMP a un indice :

Alors, vérifions les accolades...
Intéressant, dans votre cas la suggestion était :

?
Re : Comment résoudre un problème avec une formule pour une colonneCes deux scripts fonctionnent bien pour moi
Names Default To Here(1);
col_name_list = {};
dt = New Table("table",
New Column("duration", Numeric, Continuous, Values([1]))
);
If(!Contains(col_name_list, "EFT (h)"),
Current Data Table() << New Column("EFT (h)",
Numeric,
Continuous,
Format("Fixed Dec", 10, 1),
Formula(:Name("duration") * 24)
)
);
En général, les scripts de reformatage devraient pouvoir résoudre la plupart des problèmes.
Je suggérerais également de ne pas utiliser Name() pour des cas comme celui-ci (dans les formules), à moins que vous n'utilisiez une version beaucoup plus ancienne de JMP, car il a été remplacé par ""n
Guide de script > Blocs de construction JSL > Règles de syntaxe JSL > Règles JSL pour les noms

Re : Comment résoudre un problème avec une formule pour une colonneMerci, j'ai vérifié le formatage, il semble correct. Je ne parviens pas à localiser cette erreur.
Unexpected ")". Perhaps there is a missing ";" or ",".
Pour donner un peu de contexte, le script sur lequel je travaille est un ancien script écrit dans une version antérieure de JMP (version 14/15, peut-être). Il est fonctionnel pour l'usage pour lequel il a été conçu. Je le réutilise maintenant.
Je n'étais pas au courant de l'utilisation de Name(), vous suggérez que je devrais simplement utiliser column-name directement, peut-être comme
Names Default To Here(1);
col_name_list = {};
dt = New Table("table",
New Column("duration", Numeric, Continuous, Values([1]))
);
If(!Contains(col_name_list, "EFT (h)"),
Current Data Table() << New Column("EFT (h)",
Numeric,
Continuous,
Format("Fixed Dec", 10, 1),
Formula(:duration * 24)
)
);
ou durée * 24.
Je suis novice en la matière. Serait-il plus simple de réutiliser tout ce code en Python ? Devrais-je alors continuer à définir tous les paramètres de colonne, comme le type, les formats et le type de modélisation ? Merci.
Re : Comment résoudre un problème avec une formule pour une colonneMerci, je vais vérifier ce lien. Je ne les connais pas encore.
Re : Comment résoudre un problème avec une formule pour une colonneSans voir le script, il est difficile de dire quel pourrait être le problème, car les scripts que vous avez fournis fonctionnent très bien.
Y a-t-il une raison particulière de le réécrire en Python ? S'il devait encore être utilisé dans JMP, je n'utiliserais pas Python (la plupart du temps) pour effectuer des tâches qui pourraient également être réalisées avec JSL.