vérifier si la colonne existe ?Salut,
Je souhaite créer une nouvelle colonne et avant de le faire :
demandez au tableau de données si la colonne existe déjà.
Existe-t-il un « meilleur » moyen de partager le code avec d’autres collègues de l’entreprise ?
Vérifiez le nom de la colonne s'il existe
Comment vérifier si une liste de colonnes existe et signaler celles qui manquent à l'aide d'une fenêtre pop-up ?
Déterminer si une colonne existe
Créez une nouvelle colonne Row() uniquement si elle n'existe pas
Valider le nom de la colonne existe avant de représenter graphiquement
Personnalisation de masseRe : vérifier si la colonne existe ?quelques idées supplémentaires:
- cool!
Je ne savais pas/remarqué que la comparaison fonctionnait sans le chaîne option de obtenir les noms de colonnes
aussi robuste que @txnelson c'est essayez (colonne (dt, "Âge"))<BR /> âge ~ Âge
- il suffit d'utiliser chaîne comme argument pour Obtenir les noms de colonnes si vous souhaitez faire la différence entre âge et Âge
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Show(dt << Get Column Names(String));
Show( Contains( dt << Get Column Names(String), As Name( "Age") ) ); // -> nope
Show(dt << Get Column Names);
Show( Contains( dt << Get Column Names, As Name( "Age") ) ); // found !
Show(r=try(column(dt,"Age")<<GET name=""></GET>
Re : vérifier si la colonne existe ?Ah sympa:)
Pour éviter que les utilisateurs en général n'oublient
As Name
dans leur code, que diriez-vous d'ajouter une fonction à l'objet table de données pour demander si la colonne existe :
table de données : la colonne de message existe (colname) ?
livré avec JMP18 :

Re : vérifier si la colonne existe ?Je crois que tu es juste censé utiliser le Comme nom() fonction pour cela.Cela rend ces vérifications faciles et vous n'avez pas à vous soucier de l'espacement/des majuscules :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:age << set name("a g e");
Show( Contains( dt << Get Column Names, As Name( "a ge" ) ) );
Show( Contains( dt << Get Column Names, As Name( "S eX" ) ) );
name to check = "N a ME";
Show( Contains( dt << Get Column Names, As Name( name to check ) ) )Re : vérifier si la colonne existe ?En fait non besoin demander le nom, non ?
L'astuce réside dans le
Try(column(dt,"age"), <EM>check for failure</EM>);
Essayez d'obtenir la colonne et vérifiez si elle échoue.
Non seulement ultra-court, mais aussi un excellent choix en ce qui concerne robustesse 
Et - comme cerise sur le gâteau - demandez à la colonne son nom :
r=try(column(dt,tn)<<GET name=""></GET>
Une bonne astuce pour obtenir un type de retour bien défini pour les colonnes existantes et inexistantes. Merci @txnelson 
Re : vérifier si la colonne existe ?La méthode la plus fiable que j'ai trouvée est de demander le nom de la variable, << get name
Il honore les blancs, etc.
names default to here(1);
dt=current data table();
dt:age << set name("a g e");
tn="age";
r=try(column(dt,tn)<<GET name=""></GET>Re : vérifier si la colonne existe ?ma farorite : l'idée de Jim de simplement demander la table de données pour la colonne et vérifiez si la table de données se plaint.
Mais même cette approche repose sur le fait que l’orthographe du nom de la colonne lors de la demande correspond au nom réel.
par exemple, il ne trouve pas « age e » si vous demandez « age ».
Mais la nouvelle rubrique :âge couperait tous les liens entre :âge et la colonne existante :âge
Cela pourrait entraîner de tels dommages collatéraux :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:age << set name("a g e");
Show(dt: age [5]); // points to the existing column
Try(:is there a = column(dt,"age"), "answer: no");
new Column("age");
Show(dt: age[5]) // points to the new columnRe : vérifier si la colonne existe ?On dirait que chacune de ces solutions fonctionnerait. Le plus robuste serait probablement le 2ème lien, mais il contient également le plus de lignes de code.