Säulen
Hallo an alle,
Ich habe mehrere Spalten:
1- Spalten „Durchschnittliche Anzahl“.
2- „Zahlen“-Spalten
mit Zahlen zwischen 1 und 10.000.
Normalerweise sollte jede Spalte, die zur Gruppe (2) gehört, auch zur Gruppe (1) gehören und umgekehrt. Wir sollten also in beiden Gruppen die gleiche Anzahl von Spalten haben.
Allerdings gehören Spalten, die zu Gruppe 1 gehören, nicht zu Gruppe 2 und umgekehrt.
Beispiel : „Durchschnitt 730“, aber die Spalte „730“ existiert nicht.
Das Ziel besteht darin, die Schnittmenge dieser beiden Gruppen zu ermitteln, sodass in den beiden Gruppen die gleichen Spalten vorhanden sind.
DatentabelleBetreff: ColonnesAssoziative Arrays können beim Erstellen der Schnittmenge hilfreich sein Assoziative Arrays in Mengenoperationen (jmp.com) Wenn Sie die Tasten gleich aussehen lassen können. Oder Sie könnten die Tabellen stapeln, sie ähnlich aussehen lassen und dann einen Join durchführen. Ich denke, der schwierigste Teil könnte sein, wie Sie die Spaltenlisten erhalten, die Sie interessieren, und das hängt von Ihren Daten ab.
Betreff: SpaltenDie Spalten befinden sich in derselben Datentabelle.
Hier ist ein Beispiel aus meiner Datenbank:

Ich möchte die Spalten „Dauer 721“, „730“ und „750“ entfernen.
Betreff: ColonnesEine Option ist die Verwendung assoziativer Arrays
Names Default To Here(1);
dt = Open("$DOWNLOADS/AA.jmp");
// build
aa_duree = Associative Array();
aa_nonduree = Associative Array();
For Each({col_name}, dt << Get Column Names("String"),
If(Word(1, col_name) == "durée",
aa_duree[Word(-1, col_name)] = col_name;
, !IsMissing(Regex(col_name, "\d+")),
aa_nonduree[col_name] = 1;
,
continue()
);
);
aa_duree_copy = aa_duree;
aa_duree_copy << Intersect(aa_nonduree);
cols_to_keep = Insert(aa_duree_copy << get keys, aa_duree_copy << get values);
aa_duree_copy2 = aa_duree;
aa_nonduree_copy = aa_nonduree;
aa_duree_copy2 << remove(aa_nonduree);
aa_nonduree_copy << remove(aa_duree);
cols_to_remove = Insert(aa_nonduree_copy << get keys, aa_duree_copy2 << get values);
show(cols_to_keep, cols_to_remove);
Es gibt auch andere Optionen, wie das Zusammenführen gestapelter Tabellen oder die Verwendung nur von Listen
Betreff: SpaltenSuper, danke, es funktioniert!
Allerdings befinden sich die Spalten in der Liste „cols_to_remove“. Wie kann ich diese Spalten direkt in der Datentabelle löschen?
Betreff: ColonnesVerwenden dt<
