Spaltennamen aus der Spaltenliste abrufen
Names Default to Here(1);
dt = Current Data Table();
column list = dt << Get Column Names(Continuous);
key list = dt << Get Column Group("KEYS");„Spaltenliste“ enthält a Namensliste aus Spalten mit kontinuierlichen Daten.
„Schlüsselliste“ enthält a Liste der Spalten in der Gruppe „KEYS“.
Wie erhalte ich die Namen der Spalten aus der „Schlüsselliste“? Letztendlich möchte ich alle fortlaufenden Spaltennamen aus der „Spaltenliste“ entfernen, die sich in der Gruppe „KEYS“ befinden. Ich habe einen Beitrag von Craige Hales zum Verwalten der Listen gefunden, aber ich muss sie im gleichen Format erhalten.
Betreff: Spaltennamen aus der Spaltenliste abrufenHier ist eine einfache Aufgabe, bei der Sie mir helfen können: Wenn ich „Spaltennamen“ habe, wie kann ich sie dann in eine Datentabelle einfügen, die genau dieselbe Liste von Spaltennamen ist?DANKE Devin
Betreff: Spaltennamen aus der Spaltenliste abrufenBitte nicht mit dem Kopf anstoßen! Verwenden Hilfe > Skripterstellung Index stattdessen.

Betreff: Spaltennamen aus der Spaltenliste abrufenVielen Dank für Ihren Hinweis, dass für CONTAIN literale Zeichenfolgen erforderlich sind und dass „Spaltennamen abrufen“ dies ohne die Option „String“ nicht bereitstellt. Ich habe lange mit dem Kopf dagegen geschlagen und das Hinzufügen von „Schnur“ hat das Problem sofort behoben.Betreff: Spaltennamen aus der Spaltenliste abrufenDer Trick war: Char(key list[i]))
(Ich habe nie daran gedacht, die Spaltenreferenz in einen String umzuwandeln)Betreff: Spaltennamen aus der Spaltenliste abrufenHier ist die Lösung, zu der ich gekommen bin, nachdem ich die Schlüsselliste wie vorgeschlagen in Strings konvertiert habe:
// 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;
Betreff: Spaltennamen aus der Spaltenliste abrufenDanke. Ich möchte aus der „Spaltenliste“ jeden Namen entfernen, der sich in der Gruppe „Prozesse“ befindet (anhand Ihres Beispiels), daher müssen Elemente aus der „Spaltenliste“ und nicht aus der „Schlüsselliste“ entfernt werden. Ich gehe davon aus, dass ich die Spaltenliste nach Char(key list[i]) durchsuchen und es entfernen muss, wenn es gefunden wird.Betreff: Spaltennamen aus der Spaltenliste abrufenWas sowohl von << Get Column Names als auch von << Get Column Group zurückgegeben wird, sind JMP-Listen.Sie können sie sich grob als Arrays von Werten vorstellen.Bitte lesen Sie den Abschnitt „Skriptleitfäden“ zur Verwendung von Listen.
Nachfolgend finden Sie eine Änderung Ihres Codes, die beim Vergleich zwischen zwei Listen nach Spaltennamen sucht, die in beiden Listen gleich sind, und diese dann aus der Liste „Schlüsselliste“ entfernt.Bitte beachten Sie, dass die Funktion „Contains“ Literalzeichenfolgen benötigt, damit sie funktioniert. Aus diesem Grund wurde der 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 );
In meinem Beispiel hat die Schlüsselliste am Ende keine Werte, da alle Elemente in der Gruppe numerische Spalten sind