Nom du groupe de colonnes variables pour 'Colonnes de groupe()'Salut tout le monde,
J'essaie de sélectionner des colonnes en fonction d'une liste de chaînes et de vider les colonnes dans un groupe également basé sur la liste.
Voici le code que j'utilise :
dt = Current Data Table();<BR />// phase names by which we want to group
groupnames = {"Centering", "Dwell", "Capture", "Locking"};
// all column names in the table
allcols = dt << Get Column Names();
For( i = 1, i <= N Items( groupnames ), i++,
curgroup = {};
dt << Clear Column Selection;
// get all cols with the phase name
For( j = 1, j <= N Items( allcols ), j++,
If( Contains( allcols[j], groupnames[i] ),
As Column( allcols[j] ) << Set Selected( 1 );
//Insert Into(curgroup, allcols[j]);
);
);
// make a new group from these columns
//dt << Group Columns(char(groupnames[i]), curgroup);
dt << Group Columns( groupnames[i] );
);J'obtiens l'erreur "JMP ne peut pas déterminer les colonnes à regrouper à partir du script donné."
Si je change la dernière ligne en quelque chose comme dt << Group Columns ("chaîne fixe"), cela fonctionnera (mais ils seront tous dans le même groupe).Je ne suis pas sûr de ce que je fais mal.groupnames[i] doit être une chaîne (n'est-ce pas ?), qui est l'entrée attendue pour Group Columns().
Merci,
Christo
Re : Nom du groupe de colonnes variables pour 'Colonnes de groupe ()'Merci encore.Je cherchais juste dans la documentation html, pas dans les livres.
Re : Nom du groupe de colonnes variables pour 'Colonnes de groupe ()'Voici comment accéder à la documentation sur les caractères d'échappement.Aller à
Aide==>Livres==>Guide de script
puis faites une recherche de page pour
\!
Il vous amènera directement au tableau des caractères d'échappement
Re : Nom du groupe de colonnes variables pour 'Colonnes de groupe ()'Eval Insert() évalue les variables dans une chaîne. Les variables de la chaîne sont entourées de caractères « ^ ». Parse() transforme une chaîne en une expression. Eval() évalue l'expression.
Donc, fondamentalement, vous créez l'expression sous forme de chaîne avec les valeurs de variable résolues dans la chaîne, vous analysez la chaîne dans une expression et évaluez l'expression.
Re : Nom du groupe de colonnes variables pour 'Colonnes de groupe ()'Merci, c'est fait !Un pointeur vers la documentation sur la raison d'être des différentes séquences d'échappement?"l'aide" pour Parse() n'est pas si utile.
Re : Nom du groupe de colonnes variables pour 'Colonnes de groupe ()'Parfois, JMP est bizarre lorsqu'il s'agit d'évaluer des variables qui doivent correspondre au type d'argument attendu.J'essaie généralement de ne pas le faire, mais vous pouvez généralement contourner ces problèmes avec une séquence Eval-Parse-Eval Insert.Cela ressemble toujours à un peu de piratage, mais c'est comme du ruban adhésif avec JSL.
dt = Current Data Table();// phase names by which we want to group
groupnames = {"Centering", "Dwell", "Capture", "Locking"};
// all column names in the table
allcols = dt << Get Column Names();
For( i = 1, i <= N Items( groupnames ), i++,
curgroup = {};
// get all cols with the phase name
For( j = 1, j <= N Items( allcols ), j++,
If( Contains( allcols[j], groupnames[i] ) > 0,
Insert Into(curgroup, allcols[j]);
);
);
// make a new group from these columns
Eval(Parse(Eval Insert("\[dt << Group Columns( "^groupnames[i]^", curgroup )]\")));
);