Variabler Spaltengruppenname für 'Group Columns()'Hallo alle,
Ich versuche, Spalten basierend auf einer Liste von Zeichenfolgen auszuwählen und die Spalten ebenfalls basierend auf der Liste in eine Gruppe abzulegen.
Hier ist der Code, den ich verwende:
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] );
);Ich erhalte die Fehlermeldung „JMP kann die zu gruppierenden Spalten aus dem angegebenen Skript nicht ermitteln.“
Wenn ich die letzte Zeile in etwas wie dt << Group Columns ( "fixed string") ändere, funktioniert es (aber sie befinden sich alle in derselben Gruppe).Ich bin mir nicht sicher, was ich falsch mache.groupnames[i] sollte ein String sein (richtig?), was die erwartete Eingabe für Group Columns() ist.
Danke,
Christo
Betreff: Variabler Spaltengruppenname für 'Spalten gruppieren()'Danke noch einmal.Ich habe nur in der HTML-Dokumentation nachgesehen, nicht in den Büchern.
Betreff: Variabler Spaltengruppenname für 'Spalten gruppieren()'So gelangen Sie zur Dokumentation der Escape-Zeichen.Gehe zu
Hilfe==>Bücher==>Scripting Guide
und führen Sie dann eine Seitensuche durch
\!
Sie gelangen direkt zur Tabelle der Escape-Zeichen
Betreff: Variabler Spaltengruppenname für 'Spalten gruppieren()'Eval Insert() wertet Variablen innerhalb eines Strings aus. Die Variablen in der Zeichenfolge werden in „^“-Zeichen eingeschlossen. Parse() verwandelt einen String in einen Ausdruck. Eval() wertet den Ausdruck aus.
Im Grunde genommen erstellen Sie also den Ausdruck als Zeichenfolge, wobei die Variablenwerte innerhalb der Zeichenfolge aufgelöst werden, Sie parsen die Zeichenfolge in einen Ausdruck und werten den Ausdruck aus.
Betreff: Variabler Spaltengruppenname für 'Spalten gruppieren()'Danke, das hat es getan!Irgendein Hinweis auf Dokumentation darüber, wofür die verschiedenen Escape-Sequenzen sind?Die "Hilfe" für Parse() ist nicht so nützlich.
Betreff: Variabler Spaltengruppenname für 'Spalten gruppieren()'Manchmal ist JMP seltsam, wenn es darum geht, Variablen auszuwerten, die sich in den erwarteten Argumenttyp auflösen sollten.Ich versuche im Allgemeinen, dies nicht zu tun, aber Sie können diese Probleme normalerweise mit einer Eval-Parse-Eval-Insert-Sequenz umgehen.Das fühlt sich immer ein bisschen wie ein Hack an, aber es ist wie Klebeband mit 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 )]\")));
);