JSL: Wie gruppiere ich alle Spalten nach gemeinsamem Anfangsbegriff?Ich habe einen dt (70.000 Spalten), den ich basierend auf den ursprünglich abgegrenzten Begriffen in gemeinsame Bundles gruppieren möchte.
Zum Beispiel jeweils 10.000 Spalten, die alle mit „ChamberID“, „RecipeID“ oder „SlotNo“ beginnen.
Wie kann ich dies per Skript ausführen, um das DT zu durchsuchen, um alle gängigen Spalten zu finden und sie in einem zusammenklappbaren Paket zu gruppieren?

Automatisierung und SkripterstellungBetreff: JSL: Wie gruppiere ich alle Spalten nach gemeinsamem Anfangsbegriff?Hier ist ein kleines Skript, das ein Beispiel für die Erstellung von Spaltengruppen in einer Datentabelle ist.

Names Default To Here( 1 );
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNames = dt << get column names( string, continuous );
group1 = {};
group2 = {};
For Each( {name}, colNames,
/*If(
Left( name, 9 ) == "ChamberID",
Insert Into( group1, name ),
Left( name, 8 ) == "RecipeID",
Insert Into( group2, name )
)*/
If(
Left( name, 3 ) == "NPN",
Insert Into( group1, name ),
Left( name, 3 ) == "PNP",
Insert Into( group2, name )
)
);
dt << group columns( "NPN", group1);
dt << group columns( "PNP", group2);Betreff: JSL: Wie gruppiere ich alle Spalten nach gemeinsamem Anfangsbegriff?Es gibt viele Möglichkeiten, dies zu tun. Ich habe etwas Ähnliches verwendet, wie ich im folgenden Skript demonstriere (unter Verwendung eines assoziativen Arrays).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Probe.jmp");
aa_groups = ["DELL" => {}, "DELW" => {}, "RCON" => {}];
col_names = dt << Get Column Names("String");
For Each({col_name}, col_names,
For Each({{key, value}}, aa_groups,
If(Starts With(col_name, key ||"_"), // "_" is used as additional separator
Insert Into(aa_groups[key], col_name);
Break();
)
);
);
For Each({{groupname, groupcols}}, aa_groups,
dt << Group Columns(groupname, groupcols);
);
Wenn Sie mehr Dynamik benötigen, können Sie dies auch tun
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Probe.jmp");
aa_groups = Associative Array();
col_names = dt << Get Column Names("String");
For Each({col_name}, col_names,
nameparts = Words(col_name, "_"); // depending ion your columns, this might need to change
If(N Items(nameparts) > 1,
If(!Contains(aa_groups, nameparts[1]),
aa_groups[nameparts[1]] = {}; // add new key
);
Insert Into(aa_groups[nameparts[1]], col_name);
);
);
For Each({{groupname, groupcols}}, aa_groups,
dt << Group Columns(groupname, groupcols);
);
Die Idee ist bei beiden gleich. Erstellen Sie ein assoziatives Array, in dem die Schlüssel Spaltengruppennamen und die Werte eine Liste der Spalten sind, die zu dieser Gruppe gehören.