Obtenir les noms de colonnes à partir de la liste des colonnes
Names Default to Here(1);
dt = Current Data Table();
column list = dt << Get Column Names(Continuous);
key list = dt << Get Column Group("KEYS");"liste de colonnes" contient un liste de noms à partir de colonnes contenant des données continues.
"liste de clés" contient un liste des colonnes dans le groupe "CLÉS".
Comment puis-je obtenir les noms des colonnes de la « liste de clés » ? En fin de compte, je voudrais supprimer tous les noms de colonnes continues de la « liste de colonnes » qui se trouvent dans le groupe « CLÉS ». J'ai trouvé un message de Craige Hales pour gérer les listes, mais je dois les obtenir dans le même format.
Re : Récupérer les noms de colonnes à partir de la liste des colonnesVoici une tâche simple pour laquelle vous pouvez m'aider : une fois que j'ai "obtenu les noms de colonnes", comment puis-je les insérer dans une table de données qui n'est que la même liste de noms de colonnes ?MERCI Devin
Re : Récupérer les noms de colonnes à partir de la liste des colonnesS'il vous plaît, ne vous cognez pas la tête ! Utiliser Aide > Scripts Indice plutôt.

Re : Récupérer les noms de colonnes à partir de la liste des colonnesMerci pour votre note sur le fait que le contenu nécessite des chaînes littérales et que "obtenir les noms de colonnes" ne le fournit pas sans l'option "string". Je me suis cogné la tête contre cela pendant longtemps et l'ajout de "string" l'a immédiatement corrigé.Re : Récupérer les noms de colonnes à partir de la liste des colonnesL'astuce était la suivante : Char(key list[i]))
(Je n'ai jamais pensé à convertir la référence de colonne en chaîne)Re : Récupérer les noms de colonnes à partir de la liste des colonnesVoici la solution à laquelle je suis arrivé après avoir converti la liste de clés en chaînes comme suggéré :
// Initialize
Names Default to Here(1);
dt = Current Data Table();
key list names = {};
// Get a list of all continuous columns
column list = dt << Get Column Names(Continuous, String);
// Create a list of column names in the KEYS group
key list = dt << Get Column Group("KEYS");
For(i = 1, i <= N Items(key list), i++,
Insert Into(key list names, Char(key list[i]))
);
// Remove from the column list any column that is in the KEYS group
/* <BR />Adapted from - Re: Quick way to compare two lists (uncommon elements)?
JAN 10, 2017 6:41 AM, by Craige_Hales, STAFF (RETIRED)
*/
set1 = Associative Array(column list);
set2 = Associative Array(key list names);
// Find the names common to both lists
intersection = set1;
intersection << Intersect(set2);
// Remove the common names
cleaned list = set1;
cleaned list << Remove(intersection);
column list = cleaned list << Get Keys;
Re : Récupérer les noms de colonnes à partir de la liste des colonnesMerci. Je cherche à supprimer de la « liste de colonnes » tout nom qui se trouve dans le groupe « Processus » (en utilisant votre exemple), les éléments doivent donc être supprimés de la « liste de colonnes » et non de la « liste de clés ». Je pense que je devrai rechercher dans la liste des colonnes Char(key list[i]) et si trouvé, supprimez-le.Re : Récupérer les noms de colonnes à partir de la liste des colonnesCe qui est renvoyé à la fois par << Get Column Names et << Get Column Group » sont des listes JMP.Vous pouvez grosso modo les considérer comme des tableaux de valeurs.Veuillez consulter la section Guides de script sur l'utilisation des listes.
Vous trouverez ci-dessous une modification de votre code, qui vérifiera la comparaison entre 2 listes, les noms de colonnes trouvés communs dans les deux listes, puis les supprimera de la liste des clés.Veuillez noter que la fonction Contains nécessite des chaînes littérales pour fonctionner, c'est pourquoi l'option <
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
column list = dt << Get Column Names( Continuous, string );
key list = dt << Get Column Group( "Processes" );
Show( "complete list", key list );
For( i = N Items( key list ), i >= 1, i--,
If( Contains( column list, Char( key list[i] ) ),
key list = Remove( key list, i, 1 )
)
);
Show( "final list", key list );
Dans mon exemple, la liste des clés finit par n'avoir aucune valeur, puisque tous les éléments du groupe sont des colonnes numériques.