Je suis au début de la création d'un script pour trouver le delta entre deux mesures pour de nombreuses colonnes.
J'ai du mal à créer des formules de colonne lorsque le nom de la colonne comporte un tiret ....
La commande d'analyse pour supprimer les guillemets change le tiret en un opérande moins qui perturbe alors ce que j'essaie d'accomplir.
Journal des erreurs :
"_92MHz_test_data" inattendu. Il manque peut-être un ";" ou alors ",".
Voici le script (qui fonctionne si la ou les colonnes n'ont pas d'opérande dans le nom.
Par exemple,
dt = table de données actuelle();
Col_Name = "diff" ; // colonne(5) - Colonne(300)
Col_Name1_char = char(nom de colonne(5)); // "bin de DWK112079-01_92MHz_test_data""
Col_Name2_char = char(nom de la colonne (300));// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (concat(":",(Col_Name1_char))); //":bin de DWK112079-01_92MHz_test_data" ;
Col2_Name = ((concat(":",Col_Name2_char))); // ": bin of DWK112079-01_90MHz_test_data" ;
Formula_I = ((concat(col1_Name, " - ", Col2_Name))); //Faire l'expression de la formule
a = Expr(Nouvelle Colonne(X, formule(Z))); // Nouvelle colonne avec le nom Diff
b = substituer(nom expr(a), Expr(X), Col_Name, Expr(Z), parse(Formula_I)); // Cela a une erreur lorsque Colnames a "-" dans le nom
eval(b);
//Noter:
show(Forumula_I, parse(Formula_I));
//Remarque : Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data" ;
//Remarque Parse(formula_I) = :bin of DWK112079 - 1; Ce n'est pas ce que je veux
Le "-" au milieu d'un nom de colonne est interprété par JMP comme une soustraction.Par conséquent, vous devez indiquer à JMP que le terme entier est un nom de colonne.La façon la plus simple de le faire est d'utiliser la structure de nommage de
":nom de colonne"n
Ce qui suit est une refonte de votre script avec les modifications apportées
names default to here(1);
dt = Current Data Table();
Col_Name = "diff"; // column(5) - Column(300)
Col_Name1_char = Char( Column Name( 5 ) ); // "bin of DWK112079-01_92MHz_test_data""
Col_Name2_char = Char( Column Name( 300 ) );// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (Concat( ":\!"", (Col_Name1_char), "\!"n" )); //":bin of DWK112079-01_92MHz_test_data";
Col2_Name = ((Concat( ":\!"", Col_Name2_char , "\!"n" ))); // ":bin of DWK112079-01_90MHz_test_data";
Formula_I = ((Concat( col1_Name, " - ", Col2_Name ))); //Make the formula expression
a = Expr(
New Column( X, formula( Z ) )
); // New column with name Diff
b = Substitute( Name Expr( a ), Expr( X ), Col_Name, Expr( Z ), Parse( Formula_I ) ); // This has error when Colnames has "-" in the name
Eval( b );
//Note:
Show( Forumula_I, Parse( Formula_I ) );
//Note : Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data";
//Note Parse(formula_I) = :bin of DWK112079 - 1; This is not what I wantJe n'aurais jamais pu comprendre cela.Merci beaucoup, fonctionne parfaitement !