Comment gérer les guillemets dans le nom de la colonne lorsque vous essayez de les utiliser dans une formule dynamique<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Supposons que j'ai un tableau avec les en-têtes Greek et AlsoGreek comme suit :
Grec aussiGrec
Alpha Phi
Bêta Oméga
Gamma Zêta
Le script suivant me donnera une colonne appelée "concat" qui combinera les 2 colonnes (j'ai ajouté des tabulations entre les symboles concat pour la rendre plus lisible).
dt = Table de données actuelle ();
colnames = dt<
colstring=":Name(\!"" || char(colnames[1]) || "\!")";
pour(i=2,i<=nitems(colnames),i++,
chaîne_col=chaîne_col || "||" || ":Name(\!"" || char(noms de colonne ) || "\!")"
);
parsecolstring=parse(colstring);
dt<
Maintenant, ce qui est bizarre, c'est que si je mets l'en-tête du tableau AlsoGreek entre guillemets (comme "AlsoGreek"), le code ne fonctionne pas.Voici le résultat du journal des erreurs (j'ai ajouté show après toutes les variables dans le code ci-dessus afin que je puisse voir ce qui se passait
colnames = {Grec, Nom("\!"AlsoGreek\!"")};
Char(colnames[1]) = "Grec";
colstring = ":Name(\!"Grec\!")";
colstring = ":Name(\!"Grec\!")||:Name(\!"\!"AlsoGreek\!"\!")";
Attendu ")", mais trouvé "AussiGreek".
Ligne 1 Colonne 25 : :Name("Greek")||:Name(""►AlsoGreek"")
Y a-t-il une solution à cela ?Sinon, existe-t-il un moyen d'extraire les guillemets du nom de la colonne ?J'ai essayé d'utiliser un substitut pour supprimer le \!", mais JMP ne le reconnaît pas comme une chaîne...
Toute aide serait grandement appréciée !J'ai >100 colonnes avec des guillemets dans le nom de la colonne...
Re : Comment gérer les guillemets dans le nom de la colonne lorsque vous essayez de les utiliser dans une formule dynamiqueIl m’était difficile de comprendre ce que vous essayiez d’accomplir. Mais, si vous souhaitez concaténer TOUS les noms de colonnes dans une table JMP et créer une nouvelle colonne avec ce nouveau nom, ce code devrait fonctionner pour votre exemple :
En créant la variable NameofNewColumn et en l'utilisant dans une instruction New Column contenue dans la fonction EVAL....pourrait vous aider.
dt = Table de données actuelle ();
colnames = dt<
NomdeNouvelleColonne = "";
Pour(i=1, i < N Items(colnames)+1, i++,
NomdeNouvelleColonne = NomdeNouvelleColonne || Char(noms de colonne );
);
eval(dt<
Re : Comment gérer les guillemets dans le nom de la colonne lorsque vous essayez de les utiliser dans une formule dynamiqueJe suppose que je vais répondre à ma propre réponse...
Le problème est que JMP ne reconnaît pas quels guillemets sont associés au \!" et lesquels ne le sont pas.Je soupçonne donc que lorsque vous utilisez une fonction char sur une colonne avec des guillemets, puis que vous essayez plus tard de l'analyser ou de faire autre chose sur cette chaîne, vous rencontrerez des problèmes.
Il existe 2 façons de gérer cela : la première consiste à mettre toutes les colonnes que vous souhaitez concaténer dans une liste, puis à utiliser l'option parse(concat(list)).
L'autre méthode (c'est ce que j'ai utilisé) consiste à obtenir les colonnes dans une liste, puis à supprimer les guillemets à l'aide d'une simple instruction for :
noquotes={},
pour(i=1,n<=nitems(origlist),i++,
insérer dans (noquotes, remplacer (char (origlist) ),"\!"",""));
comme nom (liste d'origine < );
);
Utilisez les noms de liste noquotes pour faire référence aux colonnes qui vous intéressent, et une fois que vous avez terminé, vous pouvez rétablir les noms de colonnes comme ils étaient à l'origine en effectuant l'inverse du script ci-dessus.